Key: [Opt] = Optimization [Fix] = Bug Fix [Afx] = Alpha or Beta fix. Fix for a problem recently introduced. [Imp] = Improvement on bug, but problems may still exist [New] = New Feature [Chg] = Changes Previous Functionality [Kis] = Known Issue [Wrk] = WorkAround [WrB] = WorkAround broken as a result of bug fix. [Nlr] = No Longer Reproducible, Reason Unknown. Usually a consequence of some other fix. [Tip] = Insight into the design of a feature, suggests possible uses. [Nte] = Note [Dep] = Deprecated [Pat] = Describes a backwards compatibility issue. [Ref] = Major refactoring, functionality should be identical to previous. 2005 Release 4: [Fix] [All] Bounds3D: LineIntersection and LineSegmentIntersection now work correctly in all cases; previously, they would return invalid results for some inputs. [Fix] [IDE] Code Editor: Find Next (as well as Replace & Find Next) now works correctly for search strings that are only one character long. (Feedback ID: wgyvbiay) [Fix] [IDE] Code Editor: Undo and redo are less greedy, and now selects the text when undone or redone. [Fix] [IDE] Code Editor: When deleting code from the end of a method, the line at the bottom of the code editor is now erased properly. The code was deleted in previous versions, but the editor was not being updated properly. [Fix] [IDE] Code Editor: When selecting an entire line, the code editor no longer selects the beginning of the next line. [Fix] [IDE] Code Editor: When showing or hiding the declaration area, the code editor scrollbar updates appropriately. [Fix] [IDE] ComboBox: AutoComplete now shows up (works) again in the properties list. [Fix] [IDE] Container Controls: No longer need to be moved before being properly parented. (Feedback ID: svvqujhi) [Fix] [IDE] Control Parenting: Fixed a problem where controls on container controls could lose their parenting if the container control had PagePanels within PagePanels and a window containing an instance of the container control was opened in the IDE before editing the container control itself. [Fix] [IDE] Debugger: Breakpoints can now be set again after breaking more than once. [Fix] [IDE] Exporting: Exporting a folder will now append the proper extension for the items within the folder. [Fix] [IDE] External Items: All external items are saved when the project is saved. This is a return to the Release 2 behavior. [Fix] [IDE] External Items: Should now be much better about relocating items when the relative paths to the items from the project have changed. [Fix] [IDE] External Items: When importing a project from 5.5, the alias data on the Mac is used again. [Fix] [IDE] Focus: When switching between tabs, the focus is retained more reliably. E.g., when the focus is in the code editor before running, after the run tab closes, the focus will be in the code editor still. [Fix] [IDE] Form Editor: Better handles laying out pagepanels within pagepanels. [Fix] [IDE] Form Editor: When duplicating (or copying and pasting) controls that belong to a control array that have at least one event implemented, the project no longer has stray items in the code editor, and potentially compilation issues. [Imp] [IDE] Language Reference: Language Reference has been updated. [Fix] [Win] MessageDialog: No longer displays the close, minimize and maximize buttons. [Fix] [IDE] Plugins: Constants inside of modules that are from plugins are now Public instead of Global. [Fix] [All] RbScript: RbScript no longer misinterprets the value of any context object property whose type is Double. (Feedback ID: gclmzaso) [Chg] [IDE] Revert To Saved: Now reloads from disk rather than unwinding the undo stack. [Fix] [Lnx] SELinux: The Linux IDE, as well as built Linux apps, can now run on Linux systems with SELinux (Security Enhanced Linux) enabled. [Fix] [Win] StaticText: No longer clips when resized in the window editor. [Fix] [Win] StaticText: No longer has redraw issues when changing the text. [Fix] [Win] StaticText: No longer leaks memory when assigning to the Text or Caption properties. (Feedback ID: bxuouyty) [Chg] [Win] StaticText: StaticText rolled back to pre-r3 implementation. [Fix] [Win] StaticText: The MouseDown event no longer fires multiple times for a single click, (Feedback ID: lxspzhmi) [Fix] [All] Thread: App.SleepCurrentThread now functions properly even if there's only a single thread. This also fixed App.DoEvents not properly yielding time back to the OS and your application consquently eating up 100% of the CPU. (Feedback ID: ygqwlxkn) [Fix] [Win] Trimesh Textures: Are no longer flipped in the y-axis when built for Windows. [Fix] [IDE] XML Files: Projects with encrypted items are handled better when exporting to XML. [Fix] [IDE] XML Files: Properties containing attached notes are now properly imported from XML. [Fix] [IDE] XML Files: When reading in an XML window, class, or module, properties that are public no longer are lost. (Feedback ID: nrwllkhv) 2005 Release 3: [New] [IDE] Application: Now checks for multiple instances of the application on the same machine. If another instance is found, then the project being loaded (if any) will be displayed in the running instance instead of starting an entirely new instance. [New] [IDE] Application: Now has an auto-increment feature for automatically incrementing the version information for your project on each compile (including running within the debugger). [Fix] [IDE] Autocomplete: Now autocompletes read only properties at the beginning of a line. For example, Picture.Graphics. [New] [Win] BevelButton: Now has a GotFocus and LostFocus event to alert you of focus changes. [New] [Win] BevelButton: Now has an AcceptFocus as Boolean property (which defaults to false) to allow the control to receive keyboard focus. Pressing spacebar or enter while the control has focus will fire its Action event. [Fix] [IDE] Code Editor: Autocomplete no longer gets confused after text containing non-ASCII characters. (Feedback ID: vmskusxb) [Fix] [IDE] Code Editor: Can no longer paste a property into a class interface. (Feedback ID: pgqoyiss) [Fix] [IDE] Code Editor: Changes to a control's name are now reflected in the code editor immediately, even if it was already open showing some different name. (Feedback ID: vhduyimt) [Fix] [IDE] Code Editor: Control arrays now correctly show (or remove) the "index" parameter when you change a control into a control array or back. (Feedback ID: bbopcskv) [Fix] [IDE] Code Editor: Declaration fields now commit their values automatically when you create a new code item, rather than requiring a press of the Tab or Return keys. (Feedback ID: ydffqonl) [Fix] [IDE] Code Editor: Doing a "super return" now honors the "Autocomplete applies standard case" preference. (Feedback ID: gzieiezl) [Fix] [IDE] Code Editor: Double-clicking now correctly selects words containing non-ASCII characters. (Feedback ID: vmskusxb) [Fix] [IDE] Code Editor: No longer inappropriately shows the color swatch when resizing the IDE while viewing constants in the code editor. (Feedback ID: lwkpnvyc) [Fix] [IDE] Code Editor: Now supports Shift+Insert, Ctrl+Insert, Shift+Delete and Alt+Backspace keyboard shortcuts on Windows (for Paste, Copy, Cut and Undo actions, respectively). [Fix] [IDE] ComboBox: AutoComplete is now listed in the properties list again. (Feedback ID: dxvkkvgr) [New] [Win] ComboBox: AutoComplete is now supported on Windows. [Fix] [IDE] ComboBox: Now show the UseFocusRing property in the properties window again. (Feedback ID: hoviuoas) [New] [All] Compiler: Exit now allows the expanded syntax that Continue works with. It also allows "exit sub" and "exit function", to exit from the current function. Other than not being able to specify a return value with "exit function", it behaves the exact same as the return statement. The expanded syntax includes: exit // exits the current loop exit [for | do | while] // exits the the first loop in the hierarchy of the type specified exit for loopVariable // exits the for loop identified by the loop variable exit sub // exits the current subroutine (same behavior as the return statement) exit function // exits the current function (same behavior as exiting the function normally, in that it returns the default return value) [Fix] [IDE] Compiler: No longer fails an assertion in NameMangler.cpp when certain syntax errors involving method parameter types occur. (Feedback ID: qqqbjoms) [New] [All] Compiler: Now has a "continue" statement, which allows you to go to the next iteration of a loop. It has a few ways to be used: continue // continues to the next iteration of the current loop continue [for | do | while] // continues to the next iteration of the first loop in the hierarchy of the type specified continue for loopVariable // continues to the next iteration of the for loop identified by the loop variable (Feedback ID: fijobzsy) [Fix] [IDE] Compiler: Now truncates version information when building Win32 applications where the version information is too long to store into the executable. Here are the current byte limitations for those entries: Long Version: 79 bytes Short Version: 39 bytes Package Info: 253 bytes Region: 21 bytes Release: 11 bytes [Fix] [IDE] Compiler: Parameters made optional with the "Optional" keyword now use the default value for their type instead of a random value. (Feedback ID: sgdbonfl) [Fix] [All] Compiler: Using Exit to exit a function no longer returns random values. It now returns the default value (the same as if you exited the function regularly). [New] [All] Constants: Added a new option to String constants. String constants can now be dynamically localizable, which means that it will generate and load up the values from the proper language files on the given platform. On Mac OS X, it will generate .lproj folders inside of a package that will contain a single Localizable.strings file with the values of the strings. On Linux and Windows, it will generate .mo files as per the gettext format. The way to specify the values for the languages remains the same as before. (Feedback ID: kjpuetpn, kzlnxawy) [Fix] [Win] Controls: Now draw propertly in the window editor when running the IDE in Vista. [Fix] [IDE] Debugger: Is now more reliable on Windows. For example, it now determines that the application has terminated properly with better accuracy. [Fix] [IDE] Debugger: No longer throws internal errors when encountering variants whose value is nil in certain cases. (Feedback ID: fdemlkru,rihjysyh) [New] [IDE] Debugger: Viewers for arrays of colors now draw color swatches. (Feedback ID: qjkthvau) [Fix] [IDE] Debugger: You can now view arrays of booleans. (Feedback ID: esrjrswt) [Fix] [IDE] Dialogs: Find, Show Bookmarks, et al now have the proper tab ordering. [New] [Win] DisclosureTriangle: Is now theme-savvy on Windows. [New] [Win] DisclosureTriangle: Now has a GotFocus and LostFocus event to alert you of focus changes. [New] [Win] DisclosureTriangle: Now has an AcceptFocus property (which defaults to false) to allow the control to receive keyboard focus. Pressing spacebar or enter while the control has focus will fire its Action event. [Nte] [All] DisclosureTriangle: The default size of a disclosure triangle has changed to accomodate themes on Windows. It's now an 18x18 control (but the control is centered within its bounds). You will need to update existing DisclosureTriangle width and height information manually. Failure to do so means the control will clip for you on Windows with the theme turned on. Also note, the themed version of a DisclosureTriangle on Windows ignores the facing value since the themed control does not support it. [Chg] [All] Dynamic Constants: Removed from r3, plan to reintroduce in r4. [Chg] [Win] EditField: Rolled-back the theme-savvy drawing functionality of EditFields because of too many fringe cases where the drawing was wrong. All EditFields on Windows now draw with the standard OS 3D look because Microsoft has never updated RichEdit controls to be theme savvy. [Fix] [IDE] Editor Tabs: Hitting Alt+Enter (on Windows and Linux) or Option+Return (on Mac) now brings focus to the propeties list. This provides you with a way to switch the focus from the window editor to the properties list without trying to edit a caption for a control. [Chg] [All] Element3D: This new class has been extracted as a superclass of Object3D. It takes all the properties formerly defined on Object3D except for Shape and ShapeCount, and all methods except those related to shapes, and Clone. Group3D now stores Element3Ds instead of Object3Ds. [New] [All] Element3D.Render: This event takes one parameter, a TQ3ViewObject, and provides Element3D subclasses an opportunity to submit their geometry for rendering or picking. View transforms for the element scale, rotation, etc. have already been submitted; you only need to submit your actual geometry. If all this is foreign to you, don't worry about it; it's a low-level feature intended for people who make declares to Quesa. [New] [All] Element3D.ScaleVector: This new property on Element3D adds support for non-uniform scaling. ScaleVector accepts or returns a Vector3D where the three elements represent the scale factor in the object's X, Y, and Z axes, respectively. The Scale property remains available, and returns ScaleVector.Length/Sqrt(3) (so that when ScaleVector is <1,1,1>, Scale is 1). When you assign a value to Scale, it sets all three components of ScaleVector to that value. (Feedback ID: dtoqoosv) [Fix] [All] EmailMessage: File attachments with appledouble mime encoding show up in the attachments array. [Fix] [All] EmailMessage: First letter of body no longer gets cut off. [Fix] [IDE] Export: You can now export folders via the Export menu (or contextual menu). [Chg] [IDE] External code items: External code items no longer open up another window when editing. They appear as another tab in the project. [Fix] [IDE] External Items: Project items stored as external files (e.g., pictures) will now be found even when the folder containing the project and files is moved, provided the relative path from the project to the files remains intact. (Feedback ID: pkbypxcb) [Fix] [IDE] External Items: Projects that contain external encrypted items can now be read in from 5.5. [Fix] [IDE] External Items: The IDE is much better about resolving external items relative to a project. [Fix] [IDE] Find Dialog: Now lets the favorites and recent searches buttons accept keyboard focus on Windows, [Fix] [IDE] Find Window: Scope popup width is now restricted to fit the dialog neatly, even in projects with very long names. (Feedback ID: gzpnzhaa) [Fix] [IDE] Find Window: The Find sheet no longer gets confused if you attempt to open in two windows at once. (Feedback ID: khwhtgim) [Fix] [Win] FolderItem: Changed made to the name of a non-existant FolderItem now stick. [Fix] [All] GetTemporaryFolderItem: Now deletes the FolderItem automatically when the application is shut down on Windows and Linux. (Feedback ID: xysvvdph) [Fix] [OSX] Graphics: No longer causes a message "CGGStackRestore: gstack underflow" to appear in the console. (Feedback ID: iyagsgfd,jzrynups,bixafjrf,oabhzoyz) [Fix] [Car] Graphics: No longer will render drawing operations if done to a canvas that is on a non-visible panel of a TabPanel or PagePanel. [Fix] [Win] GroupBox: When using DrawInto, now draws the disabled state of the GroupBox properly on themed OSes. [Fix] [IDE] HTMLViewer: You can now put an HTMLViewer on a window after opening the Language Reference. (Feedback ID: zurjxamu) [Opt] [All] InternetHeaders: Parsing internet headers is faster. [New] [Win] IPCSocket: Handle now returns non-zero on Windows (it's a handle to a WinSock SOCKET). [New] [All] IPCSocket: Has two new properties: BytesLeftToSend as Integer and BytesAvailable as Integer. These properties behave the same as their TCPSocket counterparts. [Fix] [Win] IPCSocket: Is now drastically more stable on Windows. (Feedback ID: lhvfbcne) [Chg] [Win] IPCSocket: Now binds directly to the loopback interface on Windows using a native socket control instead of trying to use memory-mapped files for doing connections and data transfer. This method should not trigger any firewall warnings (if it does, please report it). However, increased stability comes at a cost, the control is slower now than before (but is still faster than a TCPSocket). [Chg] [IDE] Languages: Updated Lettish, Farsi, Byelorussian, Tajiki, Pashto, Galla, Ruanda, and Faeroese to Latvian, Persian, Belarusian, Tajik, Pushto, Oromo, Kinyarwanda, and Faroese, respectively to match the names found in the ISO 639 specification. [Fix] [Win] ListBox: Now draws properly themed when running in Vista. [Fix] [Win] ListBox: Now honoring UseFocusRing on Windows. [Fix] [IDE] Location Field: Now selects class and module constants when you try to jump directly to them. (Feedback ID: xvzwseeg) [New] [All] Material: This new class represents a material (e.g. color or texture) in a 3D object. See the "New 3D Features Read Me.txt" file for more details. [Fix] [All] MemoryBlock: When using the comparison operator against nil, valid memoryblocks returned from declares or from MemoryBlock.Ptr will no longer always be true. Instead, if the returned MemoryBlock wraps a nil pointer, it will return true, but otherwise will return false. (Feedback ID: btmydjke) [Fix] [IDE] Mode Switch Buttons: No longer look like Aqua buttons on Windows. (Feedback ID: udriotib) [Fix] [Win] MoviePlayer: Assigning a movie that was obtained from OpenURLMovie, now works with the Windows Media Player. (Feedback ID: kygsfxzr) [Fix] [Win] MoviePlayer: Play and Stop events are now fired when using the Windows Media Player. (Feedback ID: rwyuyyle) [New] [All] Object3D.AddShapeFromFile: now takes one additional, optional parameter, insertPos, which indicates the position at which the newly added shape should be inserted into the object's shape list. If unspecified, the new shape will be appended to the end of the list. This change also applies to AddShapeFromString, AddShapeFromHandle, AddShapePicture, and AddShapePictureWithMask. (Feedback ID: gwdwhiki) [New] [All] Object3D.MaterialCount: Provides a count of all the materials that can be found inside the current shape of this object. Note that while most kinds of materials will be found, there may be some geometry types with materials tucked away where REALbasic can't find them. [New] [All] Object3D.Material(index as Integer): Lets you get or set the indicated material within the object. Raises an OutOfBoundsException if index is out of bounds. [New] [All] Object3D.RemoveShape: this new method takes one integer parameter, Index, and removes the shape at that index from the object's shape list. (Feedback ID: gwdwhiki) [New] [All] Object3D.ShapeCount: this new read-only property tells you how many shapes have been added to an Object3D. The Shape property will always return a value from 0 to ShapeCount-1. (Feedback ID: gwdwhiki) [New] [All] OLEObject: Added TypeName() As String function that returns the type name of the object. (Feedback ID: mezesmal) [Fix] [IDE] PagePanel: Deleting a pagepanel that's embedded within a pagepanel no longer crashes. (Feedback ID: beywyjhj) [Fix] [IDE] Picture Editor: No longer gives the focus to the scrollbars on Windows. [Fix] [All] Plugin Support: Plugins with classes that implement events, and whose superclasses are also in the same plugin, now work correctly. [Fix] [IDE] Preferences Window: Cancel button now cancels preference changes (previously, prefs were actually saved on Mac OS despite clicking Cancel). (Feedback ID: ldtrqlzo) [Fix] [IDE] Preferences: Corrected tab ordering in the Debugger pane. [Fix] [IDE] Printing & Copying: Now properly indents source code (again). (Feedback ID: qjjnvdgk) [Fix] [Win] ProgressBar: Now draws in the indeterminate state properly on Vista. [Fix] [IDE] Project Tab: If you move the splitter more than a few hundred pixels away from the right side of the window in a new project, subsequent new projects no longer position the splitter near the window's left side. [Fix] [IDE] Project Tab: If you save a project with the properties list stretched very wide, the project item list is no longer initially invisible when you reopen that project. [Fix] [IDE] Project: No longer can get in a situation where assigning a menubar has no effect. (Feedback ID: oqdqohmt) [Fix] [IDE] Properties Listbox: Can now select the "more" button (with the ellipsis) in the properties listbox by hitting Ctrl+Enter on Windows and Linux. [Fix] [IDE] Properties List: Properties of subclassed controls now have their correct behavior even after saving and reopening the project. (Feedback ID: jsiogxql) [Fix] [Car] Properties: Having default values and compiling for Mach-O no longer crashes the application when instantiating the class that property belongs to. (Feedback ID: iqglbmoq,bboostbp) [New] [All] Quaternion: Now has a copy constructor (e.g., q2 = New Quaternion(q1)), as well as a Copy method (e.g. q2.Copy(q1)), for easily making one Quaternion with the same data as another. [Fix] [] REAL SQL Database: Fixed bugs in the way local and UTC time was being obtained. [Fix] [Win] Registry: Value now returns a proper string when querying REG_MULTI_SZ keys. (Feedback ID: noopkpoz) [Fix] [IDE] Revert: Now reverts all the way back to the last save, rather than only to the last time you ran the project. You may also notice that you can now Undo past the last run of the project, too. [Fix] [Car] RGBSurface: No longer yields corrupted images if setting pixels after already drawing the picture to the screen. [Chg] [All] RGBSurface.Pixel: Setting a pixel value no longer clears the high byte of a 32-bit pixel, since that byte may be interpreted as alpha channel data when the picture is exported to other applications. (Feedback ID: cqfkrzxt) [New] [Win] ScrollBar: Now has an AcceptFocus as Boolean property (which defaults to false. This allows you to have ScrollBars for the window which do not accept keyboard focus, as per the OS UI guidelines. Note -- if you are relying on your scrollbars on Windows to receive keyboard focus, you must modify your code to set the AcceptFocus property to true. [Fix] [IDE] Searching: Now searches within computed properties. (Feedback ID: nhmpnrxt) [New] [OSX] Serial: Now supports arbitrary baud rates in OS X 10.4 and up. [Chg] [All] ServiceApplication: The "Continue" event is now named "Resume." [Fix] [All] Split: Now functions properly when splitting a UTF-16 string using Chr( 0 ) as a separator. [Chg] [Win] StaticText: Is now a true Win32 OS control. It should be 100% backwards compatible because the control is owner-drawn (so the drawing behavior should be the same). [Fix] [Win] StaticText: Now draws the disabled color using the true system colors, so high contrast mode now displays the disabled color properly. [Fix] [Win] StaticText: Now responds to screen readers properly. [New] [All] System.Network: Added a new function called WakeOnLAN that allows you to remotely wake a machine on the LAN (assuming the machine supports this feature). You can pass a broadcast address or a direct IP address, in addition to the MAC address of the machine you want to wake. [Fix] [IDE] TabPanel/PagePanel: Adding a tab (or page) to a panel no longer throws a NilObjectException under certain circumstances. (Feedback ID: rvmbqpmy) [Fix] [IDE] Undo/Redo: Now brings the affected editor tab to the front when undoing or redoing an action. If no project item is affected, then the project item editor is brought to the front. (Feedback ID: jrazgbmn) [New] [Win] UpDownArrows: Now has a GotFocus and LostFocus event to alert you of focus changes. [New] [Win] UpDownArrows: Now has an AcceptFocus property (which defaults to false) to allow the control to receive keyboard focus. Pressing the up arrow key will fire the Up event and pressing the down arrow key will fire the Down event. [Fix] [All] Variant: Can now be used with the ^ (pow) operator. [Fix] [IDE] Window Editor: No longer crashes with a Stack Overflow when controls are reordered in certain ways. (Feedback ID: lobwrbbb) [Fix] [IDE] Window Editor: No longer throws exceptions when a previously-deleted control is on the edited window. (Feedback ID: eaeambib) [Fix] [IDE] Window Editor: Now drawing the window frame widget buttons properly for themed versions of Windows (including Vista). [New] [IDE] Window Editor: Now has a Check Keyboard Mnemonics contextual menu item. This item will check for duplicate keyboard mnemonic definitions and alert you of which items are conflicting for the current view of the window. Note that changing the value of a tab panel or page panel, or setting a new MenuBar for the window is considered a different view of that window and keyboard mnemonics must be unique between views. [Fix] [IDE] Window Editor: The window itself is now included in the tab ordering, so you can select the window without having to use the mouse (by hitting the tab key to advance thru the controls on the window). [Fix] [IDE] Window Editor/Code Editor: Renaming a control in the window editor is now reflected in the code editor without needing to close the tab and reopen it. (Feedback ID: trimyzkc) [New] [Win] Window: Now has a MinimizeButton property to let you control whether the minize button is enabled at runtime. This is a design time-only property, and defaults to true for backwards compatibility. [Fix] [IDE] XML Export: Now saves notes associated with properties. Note that annotated properties in XML files will not be readable by older versions of REALbasic. (Feedback ID: rwgypozz) [Fix] [All] Xml: No longer leaks when calling various append methods. (Feedback ID: pjjznqjj,rfgumccn) 2005 Release 2: [Fix] [IDE] Add Bindings Dialog: Now responds to the space bar to toggle the checkbox. [Fix] [IDE] Application: Now enforces Integer data entry for Major, Minor, Bug and Non-Release version fields. [Fix] [IDE] Application: Renamed the "special" application property Release to be StageCode instead (so it matches with the runtime property) and made it into an Enum type. [Fix] [IDE] Application: StageCode now defaults to "0 - Developement" instead of staying blank. [Fix] [IDE] Application: The Major, Minor and NonRelease version information are properly constrained to values between 0 and 255. [Fix] [IDE] Application: Version information now defaults to 1.0.0.0 instead of 0.0.1.0. [Chg] [All] App.DoEvents: If the current method is running inside a thread, DoEvents will simply yield to the main thread instead of running one iteration of the event loop inside the thread, thereby causing great confusion. Widespread use of DoEvents is still a sign of poor application design, but at least you can no longer hurt yourself with it quite so easily. [Fix] [IDE] Arrays: The Array function can now be used on the left hand side of the dot operator: you can call methods on the array it returns. (Feedback ID: wuketitg) [Opt] [All] Array.Sort: Now faster and uses less stack space. (For the curious, it's currently a QuickSort, but switches to an insertion sort when dealing with fewer than 16 elements.) [New] [All] Array.SortWith: This new method on sortable one-dimensional array types takes one or more additional parameters, which must be arrays of the same size (but any element type). The additional arrays are reordered in the same way as the base array. [Fix] [IDE] Autocomplete: Now autocompletes AddressOf. [Fix] [IDE] Autocomplete: Now autocompletes extension methods more reliably, and on types that are not classes. [Fix] [IDE] Autocomplete: Now autocompletes UBound. (Feedback ID: apvssvko) [Fix] [IDE] Autocomplete: Now works with arrays much better. (Feedback ID: mtzjbjyg) [Fix] [IDE] Autocomplete: When autocompleting in editfields, such as the property type field, if you begin typing before the end of the existing text, it no longer does funky things. [Fix] [IDE] Build Settings Dialog: Is no longer resizeable on Windows and Linux. [Fix] [IDE] Build Settings: Can no longer even attempt to create a PEF (Carbon or Classic) console application. [Fix] [Mac] Canvases: When drawing using the Graphics instance returned by Canvas.Graphics, no drawing occurs anymore when the canvas is on a non-visible panel on a pagepanel or tabpanel. (Feedback ID: viskwhac) [Fix] [IDE] Clipboard Support: Properties copied from the code editor no longer contain their declarations twice. [Fix] [IDE] Clipboard Support: Text containing "as" is no longer mistaken for a property when pasting into a code browser. [Chg] [IDE] Code Browser: Now only retains focus if the item you are clicking on is either the currently selected item, or is not a source item (event, property, etc). Previously, it would always retain the focus no matter how you clicked on it. [Fix] [IDE] Code Editor: Clicks below the bottom of the last line are now properly interpreted as indicating the end of the last line of source code. [Fix] [IDE] Code Editor: Double clicking on words no longer selects equals signs. (Feedback ID: jotxwtyr) [Fix] [IDE] Code Editor: New methods added to a class interface are no longer given scopes other than Public when the last method or property edited was Protected or Private. (Feedback ID: hzlmggsy) [Fix] [IDE] Code Editor: No longer causes an internal error if you attempt to cut an event instance. (Feedback ID: jlhhtltj) [Fix] [IDE] Code Editor: No longer leaves gray autocompletion text in place when you click and hold the mouse. [Fix] [IDE] Code Editor: No longer shows the selection highlight in dark blue on Windows whe the code editor does not have the focus. Now the selection is the standard non-focus gray. [Fix] [IDE] Code Editor: Now properly bolds code groups. (Feedback ID: jgwknmzl) [Fix] [IDE] Code Editor: Spurious characters on a color literal are no longer invisible in the code editor. [Fix] [IDE] Code Editor: The last line of source code in a method no longer disappears when you click and hold the mouse to the right of the line. [Fix] [IDE] Code Editor: When going to locations that no longer exist (ie, you have deleted the lines of code), there is no longer an internal error. (Feedback ID: cdqdorcb) [New] [IDE] Code Editor: When switching to properties, constants, and event definitions, the editor will automatically expand the declaration area for you. It will also remember the previous state, and restore it when switching to another item. [New] [All] ComboBox: Now has a KeyDown event. (Feedback ID: jrgwwvkm) [New] [All] ComboBox: Now has a SelStart and SelLength property (Feedback ID: xqxmjtxu) [Fix] [IDE] Compiler: Calling a function and passing in multiple parameters that are converted via an Operator_Convert no longer causes an error if NilObjectChecking is turned off via the #pragma statment. (Feedback ID: scwabsqu) [Fix] [IDE] Compiler: Converting non-constant singles and doubles to integers now works properly. (Feedback ID: uqljqwdf) [Fix] [Mac] Compiler: In certain circumstances related to complex floating-point expressions involving ByRef parameters and/or object properties, the compiler no longer mistakenly overwrites the register containing an intermediate value, yielding incorrect arithmetic results. (Feedback ID: akqqyimc) [Fix] [IDE] Compiler: No longer fails assertions when trying to compile poorly formatted binary expressions, eg) dim b as Boolean b = () < 0 (Feedback ID: slxawjxc) [Fix] [IDE] Compiler: No longer throws errors for MenuBars with corrupt index information by trying to make them into cloneable menu items. (Feedback ID: neqlitud) [Fix] [IDE] Compiler: Now ensures that Win32 executables end in .exe. [New] [IDE] Compiler: Now provides more helpful error messages when a block-ending statement (such as end if or Next) is missing from the end of a block. Instead of reporting a "syntax error" at the end of a method, it will now report a specific error message at the starting line of that block (for example, "if foo then"). [Fix] [IDE] Compiler: Version information is now set in the built executables correctly. Specifically, fixed the StageCode, BugVersion and NonReleaseVersion information. [Fix] [All] Compiler: When two classes inherit from the same superclass that defines a protected member, you can now access that protected member in one class from the other class without explictly upcasting it to the class that declared it. For example, consider class SharedParent declared a property "Foo", and class A and class B both have a superclass of SharedParent. From within class A, you can now access "Foo" on instances of class B. [Fix] [IDE] Compiling: If a constant has an error, it no longer throws an assertion or exception. Instead, it now displays the constant for you. (Feedback ID: fztshzmv) [Fix] [All] ContainerControl: Resized event now fires even when embedded in a window with LiveResize=True. [Fix] [All] ContainerControls: No longer "bleed" through tab panel or page panel pages. (Feedback ID: lpvuammh,ngavnhzc) [Fix] [Win] Controls: Changing the caption of a control now properly updates on Windows XP64. Also, the controls are now theme savvy. (Feedback ID: pmxrcwbt) [Fix] [Win] CountFieldsB/NthFieldB: No longer throws loader assertions when used in an application. (Feedback ID: xmbtmgsp) [Fix] [IDE] Database Browser Window: Now has resizeable columns when browsing data. (Feedback ID: melkdoqx) [Fix] [IDE] Database Editor: Now has the proper tab ordering. [Fix] [IDE] Debugger: Arrays of variants now show up with all of their values displayed. If the array element is an object reference, it is now drawn as a clickable hyperlink. (Feedback ID: fbarlcgg) [Fix] [IDE] Debugger: Can now Copy from the debugger. (Feedback ID: wppvvwze) [Fix] [IDE] Debugger: Event implementations, assigns methods, extension methods, and methods using ParamArray no longer show up in the debugger with inexplicable punctuation marks preceding their names. (Feedback ID: DebugStackFrame.DisplayName) [New] [IDE] Debugger: Hyperlinks now have a contextual menu allowing you to open the link in place or in a new window. (You can still open in a new window by shift-clicking or command-clicking, depending on your platform; this is just a new way to get to the same feature.) [New] [IDE] Debugger: New button jumps to an editor for the code you are currently viewing. (Feedback ID: fmvmvaij) [Fix] [IDE] Debugger: Now can close external windows with Command-W. (Feedback ID: yzpwsudb) [New] [IDE] Debugger: Object array viewers have an additional data column displaying one property value for each object instance. A popup menu lets you select which of the class' properties this column will display. (Feedback ID: mtzhrkuc) [Fix] [IDE] Debugger: Object values in arrays are now displayed as hyperlinks, as in other data viewers. (Feedback ID: nhyhjpnz) [New] [IDE] Debugger: The first and last lines of source are now shown so that you can distinguish which items are passed as parameters, as well as see where the execution point is when you return from the method. (Feedback ID: vlpdatln,bsfkzhoj) [Fix] [IDE] Debugger: Variant variables are no longer blank. [Fix] [IDE] Debugger: Viewing the contents of a string with nil encoding no longer causes the IDE to fail with a NilObjectException. (Feedback ID: lsfpffwv) [Fix] [IDE] Debugger: When debugging a project on a remote machine using a different processor architecture than the machine the IDE is running on (debugging a Windows app from Mac OS, for example), the target app will no longer crash when it reaches a breakpoint or a Break statement. [New] [IDE] Default New Project: If you have project in your Project Templates folder called "Default New Project," it will automatically be loaded when REALbasic is launched. (Feedback ID: brwbtlvk) [New] [All] Dictionary.Keys: this new method returns all the keys in the dictionary, as a Variant array. The order is guaranteed to be stable and to match the order returned by Dictionary.Values, at least until the dictionary is modified. Tip: use it with "for each" to easily iterate over all keys. [New] [All] Dictionary.Values: this new method returns all the values in the dictionary, as a Variant array. The order is guaranteed to be stable and to match the order returned by Dictionary.Keys, at least until the dictionary is modified. Tip: use it with "for each" to easily iterate over all values. [Fix] [Win] EditableMovie.Picture: No longer leaks memory when getting a Picture from an EditableMovie. [Fix] [IDE] External Items: When external items are locked and you save the containing project, it will no longer gripe about the items being locked. (Feedback ID: jpbeomqz) [Fix] [IDE] External Windows: Once again compile even when they include a custom control with an implemented event. (Feedback ID: sgivqzqi) [Fix] [IDE] Find Window: Recent Searches button now works properly. (Previously, it would select a Favorite search instead.) (Feedback ID: kuoshzsy) [Fix] [IDE] Find: Regex searches now match even at the start of a line (or other bit of text). (Feedback ID: bviwsbko) [Fix] [Lnx] FolderItem.GetSaveInfo: GetSaveInfo now works properly when mode is relative (1). (Feedback ID: twniianp) [New] [Win] Icon Editor: Can now import .ico files on Windows from the Add contextual menu. (Feedback ID: ygozamtd) [Fix] [IDE] Implements Interface Dialog: No longer uses the default scope rules, instead pulls the scope information from the interface contract itself. [Fix] [IDE] Importing: When importing a folder of items, if an item has the same name as a folder when importing, it no longer renames the class to not conflict with the folder. [Fix] [IDE] Line, non-visible controls: Can now be positioned on the window again instead of snapping back to original location. (Feedback ID: sgadkroi) [Fix] [IDE] List Bindings Dialog: No longer displays an & in the window's title. (Feedback ID: uavwoddg) [Fix] [All] Listbox: Drag-reordering of rows in a hierarchical listbox no longer allows attempts to drag a folder into itself. (Feedback ID: hjtcmkpx) [Fix] [Lnx] Listbox: Listbox content now updates properly when the ScrollPosition is changed. (Feedback ID: jixgyunp) [Fix] [Win] ListBox: Now displays the selection highlight in gray when the ListBox does not have the focus. This provides the proper visual feedback for the user. [Fix] [Win] ListBox: Scrolling listbox contents horizontally now refreshes the headers properly. (Feedback ID: tsjvqbaw) [Fix] [Car] Mach-O: Modules and static variables now show up in the debugger. (Feedback ID: svubifcx,ywpxmkpy,uggsvxhq) [Fix] [All] MemoryBlock: Comparing a MemoryBlock to nil will return true if the MemoryBlock is nil, or if the MemoryBlock wraps a nil pointer. If you need to know whether the actual variable itself references nil instead of wrapping a nil pointer, then you should use the Is keyword, like this: if myMemoryBlock Is nil then (Feedback ID: iygdedos) [Fix] [IDE] Menu Editor: Can now toggle the AutoEnable property back to true again. (Feedback ID: aeolyhrb) [Fix] [IDE] Menu Editor: Descriptions of standard keyboard accelerator keys no longer shows double ampersands. (Feedback ID: ilntisyu) [Fix] [Mac] MenuItem.PopUp, ConstructContextualMenu: Now creates a true contextual menu item instead of using a popup menu. This causes the first item in the menu to not be initially selected (as is appropriate). (Feedback ID: evpzujga) [Fix] [Mac] Menus: No longer stop working "after a while." For Carbon, this meant quite some time, but for classic, the period was short. This also fixes the IDE menus stop working after some time. (Feedback ID: jdxexgms,zynopshi) [Fix] [Car] Menus: Worked around a Tiger bug that causes menus to not unhighlight properly in Carbon applications in certain circumstances. (Feedback ID: bcalwkav) [Fix] [Win] MessageDialog, MsgBox: No longer takes up huge amounts of the screen for people with higher screen resolutions. Now caps the dialog width at 512 pixels, regardless of resolution. (Feedback ID: cieygjmi) [Fix] [IDE] Multiple Errors Tab: No longer displays the selected text in white on Windows or Linux. Now uses black for better readability. [Fix] [IDE] New Bookmarks Folder: No longer throws an exception when clicking the close button. (Feedback ID: yojgguqr) [Fix] [IDE] Old Projects: When reading in a project from 5.5 that built Mach-O, the IDE no longer selects both PEF and Mach-O for the build settings. (Feedback ID: jjssukdf) [New] [All] OLEObject: Setting indexed properties is now supported. The Value property of the OLEObject class can now take a list of parameters when assigning a value. Value( nameOfProp As String, params() As Variant ) = newValue For example, the Word.Document.Compatibility property is an indexed property. Dim word As New OLEObject("Word.Application") Dim doc As OLEObject word.Visible = True doc = word.Documents.Add Dim params(1) As Variant params(1) = Office.wdNoTabHangIndent doc.Value("Compatibility", params) = True // or // doc.Compatibility(Office.wdNoTabHangIndent)=True [Fix] [Win] OLEObject/OLEContainer: Now better at handling events for certain ActiveX controls. (Feedback ID: ncgqzwif) [Fix] [IDE] Plugins: Mach-O only plugins now work again. As an added benefit, they no longer need to be converted to either a resource-fork based plugin or the RBX format. The dylib can now simply be put in the plugins folder, and the IDE will load it directly. (Feedback ID: mlvgcknb) [Fix] [Car] Plugins: No longer crash the IDE when using a Mach-O plugin in a console application. (Feedback ID: saijhvqe,jalcyohs) [Fix] [All] Plugins: Properties that are on class extensions now properly work when setting. This also fixes properties such as MoviePlayer.Position and MoviePlayer.Volume. [Fix] [IDE] Preferences: Fixed a handful of cosmetic issues in the preferences dialog, such as caption fonts, sizes and alignment. [Fix] [All] Print, StdOut, StdErr: Now printing UTF-16 characters out properly. (Feedback ID: srmfbzlx) [Fix] [IDE] Project List: Changing the name of a folder no longer requires that the folder not be named differently than existing classes. This is the same behavior as 5.5 and prior. (Feedback ID: xepkecfr) [Fix] [IDE] Projects: If a project (XML or regular) somehow gets into a state in which a control behavior exists, but has no matching control, editing code for that window won't throw an internal error. This could be caused in certain cases from the VB Project Converter. (Feedback ID: evjhhzif) [New] [IDE] Properties List: Color properties now show the appropriate color when the value is set to a constant. For example, if you have an accessible constant called "kYellow" defined as a yellow color, and you set a color property to "#kYellow", then the background of the property value will be filled with yellow. [New] [All] Properties: A new type of property is now available. Computed properties are a property made of a Get and Set pair. They can be added by choosing Add->Custom Property. Implementing Get and Set are optional, so you can implement either a read-only or write-only property. These properties do not have any storage on the instance, but can be viewed within the debugger. (Feedback ID: trsqqpbw, mvnwrkdh, fsjdniqk) [New] [All] Properties: Now can have default values. The default values must be constants. For properties marked as Show in Properties Window, the default value will be used when placed on a window. Default values are not available for computed properties. (Feedback ID: ltwwcuic) [Chg] [IDE] Properties: When editing properties, there are now three fields: one for the name, one for the type, and one for the default value. The default value field is optional. [New] [All] Random.Gaussian: This new method of the Random class returns a number from a Gaussian (i.e. normal) distribution with a mean of 0 and a standard deviation of 1. [Fix] [Win] RB3D.GetPicture: Now works, instead of crashing. (Feedback ID: tpwfzadf) [Fix] [All] REALSQLDatabase: Calling Connect when already connected just returns True if already connected. [Fix] [All] REALSQLDatabase: Closing a database no longer sets FolderItem to nil. [Fix] [All] REALSQLDatabase: Plugged a memory leak that occurred when closing a RecordSet. [Fix] [All] RectControl.MouseWheel: Returning true from the MouseWheel event no longer causes your application to stay resident in memory when App.AutoQuit is true and you close the last window. (Feedback ID: lnhpaltd) [Fix] [All] RectControl.MouseWheel: Returning true no longer continues to pass the event to the window. [New] [IDE] Remote Debugger: The IDE now supports binding to a specific interface for remote debugging. [Fix] [IDE] Remote Debugging: No longer throws exceptions when the remote target could not be located. (Feedback ID: ugkzpmpc) [Fix] [IDE] Remote Debugging: Now has better remote debugging UI for things like file transfer status and failure cases. [Fix] [IDE] Remote Debugging: Now works from Mac-to-Mac. [Fix] [IDE] Search Results Editor, Multiple Errors Editor: Now responds to the Enter/Return key to bring you to the location selected. [Fix] [IDE] Search Results Editor, Multiple Errors Editor, List Bindings Dialog: No longer display the Aqua striped background lists on Windows. [Fix] [All] ServerSocket: Now returns the proper port information when the socket is not yet listening. [Fix] [IDE] Sound Files: System-7 sound files (of file type 'sfil') now import correctly. (Feedback ID: twylmwgr) [Fix] [All] StyledText: Calling StyleRunCount or ParagraphCount on a StyledText objects not owned by an EditField no longer corrupts the data within the StyledText object. (Feedback ID: vrujvswf) [Fix] [Mac] StyledTextPrinter: No longer leaks memory after each use. (Feedback ID: qbzidsnz) [Fix] [Win] StyleRun.Font: No longer returns garbage data when the owning StyledText objecct is an EditField and you are running a Windows NT-based kernel. (Feedback ID: tnihypla) [Fix] [Mac] System.Cursors.Wait: The Wait cursor now uses the watch on the Mac instead of the old black-and-white style spinning cursor. Note that it is against the HIG to display this cursor on OS X. (Feedback ID: iqyvswmv) [Fix] [All] System.IsFunctionAvailable: Now checks to make sure the library name is sane before telling you that a function is available. (Feedback ID: knjsoxhp) [Fix] [Lnx] TabPanel: East/West facing tabs are now in their correct position. (Feedback ID: eberedcx) [Chg] [IDE] Tabs: No longer overlap when lots of tabs are open. Instead, the names become truncated, starting with the largest tabs first. [Chg] [IDE] Tabs: When closing a tab, it will take you back to the last tab you were on (which is not necessarily the tab that is to the left or right of the current one). This means that if you run your project and quit the debugged app, the tab you will be on will be the same one as when you started debugging. (Feedback ID: glviggyu) [New] [All] Target constants: Introduced TargetBigEndian and TargetLittleEndian for determining the byte order of the system the application is built for. [Fix] [All] TCPSocket: No longer throws a 103 error when trying to get the RemoteAddress from a socket that's not connected. (Feedback ID: zsbnndyz) [Fix] [Win] Threads: Fixed a substansial memory leak when running a thread on Windows. (Feedback ID: wensnfuw) [Fix] [IDE] Upgade Dialog: No longer mistakenly thanks the user for registering even if they cancelled the upgrade dialog. (Feedback ID: vconeotk) [Fix] [All] Variant: Illegal variant comparisons now throw a TypeMismatchException. For example: dim v as Variant = new Dictionary if v = 1 then MsgBox "La la la" end if Will now throw an exception. (Feedback ID: uifdhyjg) [Fix] [IDE] Window Editor Behavior: Properties are now listed properly in the Window Editor Behavior dialog. (Feedback ID: nduovlsf) [Chg] [IDE] Window Editor: Can now select multiple controls on a window using either Shift or Ctrl on Windows and Linux. (Feedback ID: fqyagwmn) [Fix] [IDE] Window Editor: Changing properties by varying only case now sticks. (Feedback ID: nbiywogt,haotgkrs) [Fix] [IDE] Window Editor: Changing the Super of a control no longer causes the IDE to display a "StackOverFlow" exception. (Feedback ID: hymemjjs) [Fix] [IDE] Window Editor: Clicking on the next/previous page buttons on a page panel twice no longer is recognized as a double click. (Feedback ID: nnxehidr) [Fix] [IDE] Window Editor: No longer crashes if the window contains a subclass of a ToolbarItem. As a side result, subclasses of WordApplication, ExcelApplication, PowerPointApplication, SpotlightQuery, and ToolbarItems now all draw with the same icon as their superclass. (Feedback ID: bkilslrk) [Fix] [IDE] Window Editor: Now draws the selection handles and highlights using the proper colors depending on the OS. [Fix] [IDE] Window Editor: Now gives proper visual feedback when the mouse is over a control which can be moved. [Fix] [IDE] Window Editor: Now honoring the parent highlight color specified in the preferences dialog. [Fix] [IDE] Window Editor: Now selects the window when you click on the title bar (to start a drag, for instance). [Fix] [IDE] Window Editor: Scrollbars around the editing area now adjust properly after resizing the IDE window. [New] [All] Window: Added property Focus As RectControl. Use this to get/set the keyboard focus of a control. If no control has the focus, this property is nil. [Fix] [Car] Window: No longer will remain visible if hidden from a thread while the app is hidden by the system. [Fix] [All] Window: ShowModal and ShowModalWithin no longer confuse the event loop if you call them from a thread. [Fix] [IDE] XML Export: Binary data (such as icon images) is now exported as nodes, rather than as invalid UTF-8 text data. (Feedback ID: kpgdxmzx) 2005 Release 1: [New] [IDE] AcceptFileTypes: New design-time-only property on the blessed application subclass called "AcceptFileTypes" allows you to specify which file types the Mac build of your application will accept via drag-and-drop. Click the "..." button to more easily edit this list. (This replaces the functionality of the "Document Icon" checkbox in older versions of REALbasic.) [Fix] [OSX] AddressBook: Accessing values via AddressBookData.Text is now just as fast as AddressBookRecord.Value. (Feedback ID: shbkeduw) [Fix] [OSX] AddressBook: No longer crashes when getting nil date values. (Feedback ID: mmofqqfs) [Fix] [Mac] Apple Events: Can now be used from console applications. (Feedback ID: robexgqy) [Chg] [IDE] Application Launch: No longer checks for instances of the IDE that are already running. [New] [All] Application subclass: You can now have more than one Application subclass. The most-derived one is the "blessed" class, which displays all the build options, is automatically instantiated, and is referred to by the App function. [New] [All] Application: Added a new event: CancelClose() as Boolean. This fires _before_ all the Window.CancelClose events and allows you the chance to cancel the application\'s termination. This event will only fire if the application is about to terminate. Returning true causes the termination to immediately halt. (Feedback ID: ceyasesk) [New] [All] Application: Added a new method YieldToNextThread to allow the currently executing thread to give up its remaining time slice and give a new thread the chance to run. [New] [All] Application: Added CurrentThread as Thread to obtain the currently executing thread. If this is the main thread, this property returns nil. [New] [All] Application: Added four new constants for the StageCode property. Developement = 0, Alpha = 1, Beta = 2 and Final = 3. (Feedback ID: nckbiyqi) [New] [All] Application.BuildDate: this new read-only Date property provides the date and time at which the application was built. [New] [All] Application.DoEvents: can now cause a thread to sleep for an amount of time with a resolution finer than 16 milliseconds. [Opt] [All] Arrays: Access time for elements of a two-dimensional array has been reduced to less than half the previous time. [New] [IDE] Autocomplete: Now autocompletes Static, and is aware of Static declarations (ie, static Foo as Integer, Foo will autocomplete) [New] [IDE] Autocomplete: Now autocomplete's declares and soft declares. [New] [IDE] Autocomplete: Now knows about block-level dims. Items that are declared inside of a different block will not autocomplete when you do not have access to them. [New] [IDE] Autocomplete: Now works with the new For loop syntax for creating identifiers inline. Ie, for i as Integer = 0 to 100. [Fix] [Lnx] BevelButton: A disabled BevelButton now looks and acts like a disabled button. (Feedback ID: vwivpvqw) [New] [All] BinaryStream: Now has two different constructors -- one that takes a string, and one that takes a MemoryBlock. This allows you to construct a BinaryStream from these two items.\r\rIf a MemoryBlock is used, all BinaryStream functions are supported. If the MemoryBlock was created from a declare, then the Length of the BinaryStream will always report -1.\r\rIf a String is used, then all BinaryStream functions except writing and setting the length are supported. [New] [All] BinaryStream: When making a BinaryStream from a MemoryBlock, the BinaryStream now automatically resizes the underlying memory block for you. [Nte] [IDE] Bindings: terminology has changed. We now call these "visual connections" or sometimes just "connections" when the context is clear. [New] [All] Bitwise: BitAnd, BitOr and BitXor now allows more than two integer to operate on and returns the progressive results of the operation. [Fix] [All] Bitwise: ShiftLeft and ShiftRight now return 0 if the numBits parameter is <= 0. They also will throw an UnsupportedFormatException if numBits > 32. [New] [IDE] Bookmarks: Add Bookmark menu command now lets you choose a folder in which to add a global bookmark, or choose to add it to your local bookmarks bar. [New] [IDE] Bookmarks: Now saved and restored. Local bookmarks (in your bookmarks bar) are saved with the project; global bookmarks are saved in the preferences file. [New] [IDE] Bookmarks: You can now edit your global bookmarks by using the "Show All Bookmarks" menu command. Local bookmarks can be edited with the "Customize" command under the Bookmarks Bar submenu. [Fix] [IDE] Build Settings Dialog: No longer causes a failed assertion on the Windows IDE when selecting the include function names compiler option. (Feedback ID: cwdrpqzp) [New] [IDE] Build Settings: These are now presented as properties of your Application subclass. (But note that they are actually stored with the project, so even if you delete your Application subclass and create a new one, the settings will remain intact.) [Opt] [OSX] Built Apps: Now use 0% of processor time when there are no items needing to be polled, and a reduced amount in other cases. [Nte] [N/A] Calling System.IsFunctionAvailable or using a soft declare will cache both the library loading code as well as the function pointer itself. So multiple calls to the same function suffer almost no overhead costs when compared to regular declare calls. [Chg] [All] CancelClose: When the application is quitting, cancelclose and close are called as a pair for each open window. Previously every windows cancelclose event was called and if none of them canceled every close event was called. This change brings applications made with REALbasic more in line with other applications from other vendors. [New] [Win] Canvas: Added a new property EraseBackground as Boolean. This property specifies whether the user wants us to erase the entire canvas when doing operations like resizing. It defaults to true for backwards compatibility and the flag currently only affects Win32 code since that is the only platform we erase the background on.\r\rIf the canvas has no code in its Paint event, we ignore this property and never erase the background (since the canvas will never be painted). [Fix] [Lnx] Canvas: Now clears the focus from previous control when the canvas gains focus. [Fix] [Lnx] Canvas: Now clips properly when getting the graphics and drawing a picture on it. (Feedback ID: rtsbgnmd) [Fix] [All] Canvas: REALbasic applications will no longer crash in certain obscure situations. Once such situation follows: if you have code in your mouse up of your canvas control and the user clicks and holds on the canvas while pressing the menu shortcut keys for quitting the application (e.g. Cmd-Q) (Feedback ID: kweregsg) [Fix] [All] Canvas: Setting the visibility no longer causes the Canvas to redraw when the canvas is already visible. [Dep] [All] ChasingArrows: Deprecated the ChasingArrows control. Please use the ProgressWheel control instead. [Fix] [Lnx] ClearFocus: ClearFocus and Window.SetFocus now properly removes the focus from any control that had it. [Fix] [Lnx] Clipboard: Adding a picture to the clipboard no longer clobbers the text on the clipboard. Adding MacData now works properly (no longer converts the data to UTF8). [Dep] [All] Clipboard: Deprecated MacDataAvailable, please use RawDataAvailable instead. Deprecated MacData, please use RawData instead. Deprecated AddMacData, please use AddRawData instead. [Fix] [Win] Clipboard: Now properly sets and gets binary "MacData" without running into issues with null bytes. (Feedback ID: skrdoqqw) [Opt] [IDE] Code Editor: Now much faster with longer methods for both loading and typing. [Afi] [IDE] Code Editor: Some items that previously wouldn't autocomplete, such as MemoryBlock.Long, now do. [Fix] [Win] ComboBox: Now fires the TextChanged event before firing the Changed event when the combo box's selection changes (so the behavior is the same as the Mac). (Feedback ID: xnmltqxx) [Fix] [Win] ComboBox: Now gets a MouseDown message when any part of the ComboBox is clicked, not just when the thumb is clicked. (Feedback ID: xswubwnb) [New] [All] ComboBox: Now has UseFocusRing as a design-time property (Feedback ID: ayobfjwy) [Fix] [Win] ComboBox: Setting the text via code, and getting it back, now returns the same text, instead of the text of the previous selection. (Feedback ID: izrttnvq) [Fix] [Win] ComboBox: Text no longer gets cropped, allowing you to edit longer lines that do not fit within the combobox bounds. (Feedback ID: jyoebvqe) [New] [Mac] Combobox: The combobox now autocompletes (aka type-ahead), turn on the "AutoComplete" property to enable. NOTE: as of 6.0a8 this is only implemented on the Mac, but we do plan to add this for Windows/Linux as well. (Feedback ID: noyrbfeb) [Fix] [Win] ComboBox: The Window containing the ComboBox no longers gets a KeyDown event when typing in the editable portion of the control. [Dep] [All] Compiler Constants: Deprecated TargetPPC, please use TargetMacOSClassic instead. Deprecated Target68K without replacement. [New] [All] Compiler: A class can now implement the And, Or, and Not operators using methods named Operator_And, Operator_AndRight, Operator_Or, Operator_OrRight, and Operator_Not. Operator_Not accepts no parameters, and the others accept a single parameter of any type; all of these methods must return a value. [Chg] [All] Compiler: All methods are virtual now. Overriding works the same way for methods of intrinsic classes as it does for methods of classes in your project. (Feedback ID: jvotjpbh) [Fix] [IDE] Compiler: Applications are built next to their projects instead of next to the IDE. [Fix] [IDE] Compiler: Compiler builds applications using the names specified in the build settings instead of calling everything "RB6 App". [Fix] [Mac] Compiler: Compiler no longer fails an assertion at CGPPC:3120 when compiling certain absurdly large methods. (Feedback ID: ulncjjqr) [Fix] [IDE] Compiler: Compiler now reports errors using text strings instead of code numbers. [Fix] [IDE] Compiler: Compiling a line that contains many multiplication operations (or mod, or integer division operations), no longer corrupts the result. This fix only affects Windows/Linux builds. (Feedback ID: ntiquwfr) [Fix] [OSX] Compiler: Console apps are now built with no type or creator code, so the Finder now recognizes that they are not Mac apps and launches them in the Terminal instead. (Feedback ID: cnznotwy) [Fix] [Mac] Compiler: Exceptions no longer fail to pass up the stack through a method that declares no variables. (Feedback ID: tsvqrgsb) [IDE] [All] Compiler: File system errors are now reported with a dialog box instead of a silent failure. [Fix] [All] Compiler: Finally block no longer fails to execute whenever the exception was not handled by a Catch or Exception block at the same level (try block or method). (Feedback ID: zhzdvnsr) [Fix] [IDE] Compiler: Fixed a boolean comparison bug for Windows/Linux builds. (Feedback ID: sxcjwpqm) [Opt] [IDE] Compiler: If you have any plugins in your Plugins folder, they will now be prepared as needed. This will reduce compile times for projects that use plugins. The plugins will be prepared again when the contents of the Plugins folder changes, or with new versions of REALbasic. [Chg] [All] Compiler: Intrinsic type names Integer, String, Boolean, Single, Double, and Color are no longer reserved keywords. [Fix] [Win] Compiler: Methods that contain no reference-counted variables no longer fail to propagate exceptions down the stack. [Fix] [All] Compiler: Methods which are identical except that one has a parameter declared with ParamArray, and the other has a corresponding parameter declared as an array of the same element type, no longer cause ambiguous-overloading errors. (Feedback ID: kemgrjlo) [New] [All] Compiler: New "Static" option lets you declare local variables whose values persist between method invocations. Syntax is the same as the Dim statement; just use Static instead. [Fix] [All] Compiler: No longer reports error #22 (identifier already declared) for every implementation of a control array event. (Feedback ID: qkgpvddd) [Fix] [All] Compiler: No longer throws failed assertions if a class has the same name as an intrinsic data type. (Feedback ID: zqmnjixw) [Fix] [IDE] Compiler: Now complains when you try to do silly things like have classes with the same name as a data type (such as a class named CFStringRef or Short). [Fix] [All] Compiler: Now reports an error when two methods in the same class declare identical signatures. (Feedback ID: ygajwnuy) [New] [All] Compiler: Now supports module methods and global methods defined in plugins. [Opt] [Mac] Compiler: PowerPC backend produces better code (more aggressive caching of local values in nonvolatile registers across method calls). [New] [All] Compiler: RB now supports an exponentiation operator, using the caret character \'^\'. Its precedence is higher than negation but lower than IsA or the dot operator. (Feedback ID: eaasnaju) [Fix] [IDE] Compiler: Reports a more useful error message when a new class tries to reuse the name of an existing class ("This name is already in use" instead of "Multiple inheritance is not allowed", which made no sense at all). [Fix] [All] Compiler: String constants can once again contain line breaks. (Feedback ID: fxgzkxug) [Chg] [All] Compiler: Temporary storage used during a Dim statement to initialize an new variable is now released immediately; this way objects which might otherwise not have been destroyed til the end of the method will now be destroyed closer to the point where the last explicit reference is released. (Feedback ID: lgynrrfl) [Fix] [IDE] Compiler: The compiler no longer fails an assertion at FunctionCalls.cpp:824 when passing no arguments to a method that has both an optional parameter and a ParamArray. (Feedback ID: ssdqixiq) [Fix] [All] Compiler: The compiler no longer includes global methods in the search list when you qualify a method call with the owning module's name. (Feedback ID: iprshijx) [New] [All] Compiler: The Dim statement is now legal anywhere in a method. Variables declared inside a statement block go out of scope at the end of the block. (Feedback ID: xhbwkvvn) [Fix] [OSX] Compiler: The Mac OS X 10.2.8 dock no longer rejects dragged-in Mach-O applications built with REALbasic. (Feedback ID: jkkqfdow) [Fix] [OSX] Compiler: The PkgInfo file now goes inside the Contents directory instead of the root of a Mach-O application bundle. (Feedback ID: fcfgrzcr) [Fix] [All] Compiler: When a class implements an interface method declaration with a private method, and a subclass does not provide its own implementation for that method declaration, casting the subclass to the interface type and calling the method no longer causes a crash. (Feedback ID: hmdrnlug) [New] [All] Compiler: When using "multiple errors" mode, the compiler no longer stops after the first syntax error. [Fix] [OSX] Composite Windows: ClearRect now longer erases to white but erases to show what is underneath (i.e. metal window, background picture, controls, etc.) (Feedback ID: ixpjfcrh) [New] [IDE] Connections: existing projects with connections (formerly known as bindings) can now be loaded and compile correctly. [New] [IDE] Connections: may be established between a control and its window. Do this by selecting just one control, then clicking the Connect button. Note that there are currently no built-in connections which apply to a control and a window, but you could write some yourself. [New] [IDE] Connections: new visual connections can be created by selecting two controls and clicking the "Connect" button in the window editor toolbar. (You may need to configure the toolbar to have this button.) [Nte] [IDE] Connections: visual connections are drawn in the window editor, but they are not selectable. Use the "List Connections" command bar button to see the descriptions or delete a connection. [New] [IDE] Connections: You can list all the visual connections on a window using the "List Connections" button on the window editor toolbar (you may need to configure the toolbar to have this button). You can also use this dialog to delete an existing connection. [Fix] [IDE] Console Application: Can now add HTTPSocket, SMTPSocket, et al from a console application. (Feedback ID: kwjrysui) [Fix] [OSX] Console Applications: No longer generating kCGErrorRangeCheck warnings to be written out to the console when executing the application as a user who is not currently logged in. (Feedback ID: redzhjad) [Fix] [Lnx] Console Applications: No longer rely on GDK (gdk-x11-2.0), GLib (gmodule-2.0, glib-2.0) or CUPS (libcups). [Fix] [Lnx] Console Applications: Removed dependancy on CUPS for console applications since you can\'t print. [New] [IDE] Console Applications: You can now open old projects with console applications and build them. [Fix] [IDE] Constants editor: In the Windows IDE, typing a \'j\' in the Value editfield no longer closes the dialog. (Feedback ID: lwasmqjf) [Chg] [All] ContainerControl: Renamed EmbeddableWindow to ContainerControl. [Fix] [Lnx] Contextual Menu: Opening a contextual menu no longer hogs all (or most) of the CPU. [Fix] [Win] Contextual Menus: We now fire a MouseDown event when a contextual menu key is fired (either Shift+F10 or the Contextual Key on some PC keyboards) and set IsCMMClick to true. (Feedback ID: peammots) [Dep] [All] ContextualMenu: Deprecated UseCMM, please use UseMacCMM instead. [Fix] [Win] ContextualMenu: The string that is returned, as a parameter from the Action event, now has its encoding set properly. [New] [All] Control Locking: LockLeft, LockTop, LockLeft, and LockRight now apply to the parent control instead of the window. This means that if you lock a control to a tabpanel for example and the tabpanel resizes the embedded controls will also resize [New] [IDE] Controls List: You can now add custom controls or embeddable windows directly to another window, using the new popup above the controls list. NOTE: You must add the items as project items before you can add them to the window. [Fix] [Mac] Controls: Certain controls, such as the Separator and BevelButton, no longer cause crashes in certain, rare cases where one window is closing and another window containing these controls was being created. [Fix] [Win] Controls: Controls no longer disappear if that control is embedded on an indexed control (part of a control array), and that indexed control is on top of another control, and so on and so forth... (Feedback ID: zrgjpmrp) [Fix] [All] Controls: Controls no longer retain pointers to their owning windows after closing. This would cause a crash if a control was destroyed after its owning window, which might occur if some other object held a reference to the control. (Feedback ID: qcxorlzx) [Chg] [Win] Controls: No longer have their action event fired when they are right-clicked on (this change excludes the ContextualMenu, which will still fire its Action event when a menu it selected). This change allows Win32 applications to behave as expected. (Feedback ID: zyklpgbu) [Fix] [Win] Controls: Now have their MouseUp event fired after displaying a ContextualMenu (assuming you returned True from the MouseDown event). [Fix] [IDE] Control.Close/EmbeddableWindow.Close: No longer causes crashes in some cases. [Fix] [Win] ConvertEncoding: Converting a string to ASCII now works properly, instead of converting it to Windows Latin-1. [Nte] [All] CriticalSections: Note that you can shoot yourself in the foot with a CriticalSection by calling Enter on a thread, suspending another thread by having it call Enter as well, and then having the first thread set the CriticalSection to nil because the CriticalSection will never actually be destroyed. This is because the second thread still holds a reference to it. Be sure to call CriticalSection.Leave before you nil the object out! [Fix] [Lnx] CStr, Str, Format: Number to string conversion now works properly for all locales. (Feedback ID: wrdjszuy) [Fix] [OSX] Daemonized Applications: No longer crash when calling Len on a string with a nil encoding. [New] [All] Database: Added Function IndexSchema( tableName As String) As RecordSet to the Database class. It takes a TableName as a parameter, and returns a RecordSet containing the list of indexes for that table, or nil if the database backend does not support indexes [New] [All] DatabaseField: Added Operator_Convert to String, Date, Integer, Double, and Boolean. [Fix] [Lnx] Database: Getting a date/time/timestamp value from a database now returns the correct value. (Feedback ID: qokmepyv) [Fix] [All] DatabaseQuery: Data retrieved from the DatabaseQuery control now properly handles encodings (for database plugins that properly implement the new string database field type). [New] [All] Datagram: Now has a Port property that allows you to specify which port the packet should be sent to when using .Write. If the port property is left at 0, then we send to the same port that you are locally bound to.\r\rWhen reading Datagrams in, the Port property specifies the port that the datagram was sent from on the remote machine. (Feedback ID: dungbjlg) [Fix] [Win] Date: Now clearing the millisecond precision when excplicitly setting the seconds field. [Fix] [Win] Date: Now works properly on the fringe cases when doing date math (such as causing the minutes to be exactly 60). (Feedback ID: etdtpgwj) [New] [OSX] Date: On Mac OS X 10.3 and later, LongDate, ShortDate, AbbreviatedDate, ShortTime, and LongTime will now return strings based on the user\'s locale even if the user\'s locale is an Unicode only locale. [Fix] [Win] Date: WeekOfYear now returns proper information instead of sometimes being off by one.\r\rAnd to recap what the documentation doesn\'t state, this property returns the calendar week of the year in a 1-based form. So if Jan 1 falls on a Sat, then Jan 2 is the 2nd week of the year. (Feedback ID: qlbtajth) [IDE] [All] Debugger: Debug versions of applications are once again named specially so they don't overwrite the release versions. [IDE] [All] Debugger: Debugger once again cleans up after itself by deleting .debug versions of apps [Fix] [IDE] Debugger: No longer runs uncontrollably when trying to debug an EasyTCPSocket or EasyUDPSocket object. [Fix] [IDE] Debugger: The "current line" arrow no longer points to the line after the current point of execution when the debugger responds to a Break statement or exception. [New] [IDE] Debugger: When you pause a running application that is idling in the event loop, it now pauses immediately instead of waiting until the next time an event fires. [New] [IDE] Declares: Added three new data types for use with Declares only: UShort for an unsigned 16-bit integer, Byte for a signed 8-bit integer, and UByte for an unsigned 8-bit integer. [New] [All] Declares: Can now pass "Nil" to a declare parameter of type Ptr. Note that passing Nil is not the same as passing a nil MemoryBlock. The former is a constant and the latter requires a conversion operation at run time. If the MemoryBlock is nil, then the conversion operator will generate a NilObjectException. However, this isn\'t a problem when passing the constant Nil as no conversion is needed. (Feedback ID: esgmuypg) [New] [All] Declares: Can now soft-link (also known as weak-link) declares using the new keyword "Soft". Ie)\r\rSoft Declare Function Foo Lib "Bar" () as Integer\r\rIf the function cannot be loaded, then trying to call the function will raise a FunctionNotFound exception.\r\rThis provides you with the ability to weak-link functions that are resolved at runtime instead of at launch time for your application. (Feedback ID: fijdrbur) [Fix] [OSX] Declares: Can now use LibraryName.Framework as the Lib string when making Mach-O declares. [New] [All] Declares: Now have two new automatic types: WString and CFString.\r\rYou can use these two new types when making declares that would need a wchar_t * or CFStringRef (respectively). Their usage is the same as with CString, and all data is cleaned up when appropriate (meaning that we call CFRelease on the string when it goes out of scope). (Feedback ID: giisinzy) [Fix] [Lnx] Declares: Now properly resolve declares that use an absolute path to the library and the library is a symbolic link. [Chg] [IDE] Declares: Renamed the special declare type CFString to CFStringRef so we don\'t break a lot of code. [New] [All] Declares: You can now pass nil in place of a CString, WString, CFStringRef or PString. [Fix] [All] Declare: You can now use WindowPtr for declares on Windows and Linux as well as Mac. [Fix] [All] DefineEncoding: no longer modifies the encoding of the source string in rare cases (i.e. when there is only one reference to the source string). (Feedback ID: upzgkisu) [New] [All] Dictionary: A new method Lookup has been provided. Its signature is "Lookup( key as Variant, defaultValue as Variant ) as Variant". If the key isn't found, the defaultValue parameter that is passed in will be returned. If the key is found, the correspoding value will be returned. (Feedback ID: hdkvvhag) [Fix] [Win] DisclosureTriangle: Now centered vertically on Windows and Linux, just like the Mac. [Fix] [Lnx] DisclosureTriangle: Now draws transparently so the background shows through. [New] [IDE] Document windows: now keep track of when they have been modified, and when you close the last one for a particular document, you are prompted to save changes. [Fix] [Win] Drag & Drop: Dragging and dropping a file that contains unicode characters on non-NT Windows, now has the correct encoding set. [Chg] [Win] Drag & Drop: No longer deletes text from editfield when dragging from editfield to another control (except when dropping text on to another editfield, in which case, hold down the Ctrl key to complete a copy operation). (Feedback ID: ljtugplv) [Dep] [All] DragItem: Deprecated MacDataAvailable, please use RawDataAvailable instead. Deprecated MacData, please use RawData instead. Deprecated PrivateMacData, please use PrivateRawData instead. [Fix] [All] DragItem: DropLeft and DropTop now return proper values relative to the control, rather than relative to the window. (Feedback ID: hwhajddw) [Fix] [Win] DrawPicture: Drawing a 24-bit picture with mask now works properly. [New] [All] EasyTCPSocket: Added a timeout parameter (the timeout is in seconds) to WaitForMessage to allow you a graceful way to stop waiting for a particular message. [Fix] [All] EasyTCPSocket: No longer fires messages in the incorrect order (or drops message altogether). This would only occur if two messages came in real quickly with the same command id. [Chg] [All] EasyTCPSocket: WaitForConnection\'s timeout parameter is now specified in seconds (instead of ticks) to be compatible with HTTPSocket\'s timeout parameters. [Fix] [All] EditField: Can now use a mask for Uppercase and Lowercase that works. [Fix] [Car] editfield: Dragging text is no longer allowed for editfields with the password boolean set to true (Feedback ID: rwzddbdz) [Fix] [Win] EditField: Getting style information (such as calling StyleRunCount) is now significantly faster (test applications went from about 75 seconds to 8 seconds). (Feedback ID: ywfcrzhx) [Fix] [Win] EditField: LineNumAtCharPos returns 0 based information in all cases, not just some cases. (Feedback ID: ieqeaobj) [Fix] [Lnx] Editfield: Masks now work (Feedback ID: luzcgsvr) [Fix] [OSX] EditField: No longer crashes when using the mouse wheel while holding the shift key, when there is no horizontal scrollbar. [Fix] [Win] EditField: No longer crashes when you close an EditField, its parent or quit from the KeyDown event. (Feedback ID: gvchxidz) [Fix] [Win] EditField: No longer fires the MouseDown event when the EditField is disabled. (Feedback ID: plejduaz) [Fix] [Win] EditField: Now accepts file drops. (Feedback ID: hbfaenry) [Fix] [Win] EditField: Now drawing a theme-savvy EditField when the control does not have its Multiline or Styled properties set. (Feedback ID: wvedchzp) [New] [OSX] EditField: Now enables and disables secure input on Mac OS X 10.3 and higher if EditField.Password is set to be true. (Feedback ID: ymsofozo) [Fix] [Win] EditField: Now properly handles symbolic fonts, such as WingDings. (Feedback ID: ahogckjm) [Fix] [OSX] EditField: Now returns proper information when querying the StyledText object\'s Color property. (Feedback ID: wtbqjcas) [Fix] [Car] EditField: Now supports cmd+left, cmd+right, cmd+up, and cmd+down shortcuts per Apple standards. (Feedback ID: qbjsuwvc) [Fix] [Lnx] EditField: Now wraps to the nearest character if the word is too long (requires GTK+ 2.4) [Fix] [Lnx] EditField: Setting the alignment on a single-line editfield now works. Note, this feature requires GTK+ 2.4, otherwise setting the alignment does nothing. [Fix] [All] EditField: Setting the text to a global or public property no longer crashes when, in your TextChange event, set the global or public property back to the EditField.text property. (Feedback ID: uvsfmfpr,zaqjhycr) [Fix] [Win] EditField: Text dragged into a Password EditField no longer remains readable. (Feedback ID: ckvionvj) [Fix] [Win] EditField: The F keys now generate KeyDown events properly. (Feedback ID: kmlytnws) [Fix] [OSX] EditField: The input method can once again be changed from the keyboard (by pressing command-space) for EditFields on a TabPanel or floating window. (Feedback ID: dngcdnuy, xokypylj) [Fix] [Car] EditField: When an EditField has a mask, and you paste in text with unknown encoding, it no longer throws a failed assertion. (Feedback ID: ohowhkhi) [Fix] [Lnx] EditField.SetTextAndStyle: Now works properly [Opt] [All] EditField.StyledText: Sped up setting the styled text object of an EditField. (Feedback ID: bdajdpiw) [Fix] [All] EmailMessage: EmailMessages that do not contain a Content-Type header are parsed correctly. (Feedback ID: dlpvkdla) [New] [IDE] Embeddable Windows: Windows that are visually embedded on a form now draw themselves in the window/form editor. [Fix] [All] EmbeddableWindow: EmbeddableWindows no longer ignorant of intended parent controls. [New] [All] EmbeddableWindow: EmbedWithin can now take a control as its second parameter (instead of a window). The embeddablewindow will embed on the control\'s window with the given control as the parent. Left and Top are parent control relative. Using the window version of embedwithin will now always set nil as the parent. If the embeddableWindow is embedded on a pagepanel or a tabpanel it is embedded on the current page. For embedding on a pagepanel or tabpanel we suggest you use "EmbedWithinPanel" instead. \r\rSyntax Options:\r\rEmbeddableWindow.EmbedWithin ContainingWindow [,left] [,top] [,width] [,height]\r\rEmbeddableWindow.EmbedWithin ContainingControl [,left] [,top] [,width] [,height] [New] [All] EmbeddableWindow: Parent and Window properties added to embeddable window. Parent gives the enclosing control, and Window gives the enclosing window. If embeddedWindows are nested you may have to call window several times to get the topmost window. [New] [All] EmbeddableWindow: You can now embed a window on a specific page of a page panel or tabpanel. For this you would use EmbedWithinPanel.\r\rSyntax:\rEmbeddableWindow.EmbedWithinPanel ContainingPanel, Page [,left] [,top] [,width] [,height] [New] [All] EmbeddableWindow: You can now embed one window in another. This is very useful if you want to dock windows, or create custom controls that are made up of other controls. Make sure the window\'s super is set to embeddableWindow. There are some minor but key differences between embeddable windows and regular windows.\r1. EmbeddableWindows do not auto-instantiate. You must create them with new, just like any other object\r2. The open event for the window and its controls do not fire until it is actually embedded (Call EmbedWindow), or shown as a independant window (ShowAsWindow, ShowModal, ShowWithin, ShowModalWithin, note Show will just change the embeddableWindows visibility it will neither embed it or show it as a stand-alone window).\r3. All the controls and the window properties (with the exception of handle exist in the constructor and after). This allows you to change the frame type of the window after its created but before its shown.\r4. You can add new events to these windows (this may not be available in RB6a1 IDE) so that you can use them to create custom controls.\r5. Some events, properties, and methods of the window class do not do anything if in embedded mode (e.g. minimize event)\r6. Menu Handlers on the embeddableWindow are installed on the containing window (overwriting existing ones) unless the embeddableWindows acceptFocus property is set to true in which case they are installed on the embeddedWindowControl.\rNew Methods of Window\rEmbedWindow windowToEmbed, [x], [y], [width], [height]\rEmbeddable Window methods\rShowAsWindow embeddableWindowToShow [Fix] [All] EncodeURLComponent: Now correctly encodes to the specification. Previously certain characters may not have been encoded. (Feedback ID: josgyqqc,owpbmddu) [Fix] [All] Exceptions: Exposed the ThreadAlreadyRunningException so that you can handle exceptions of this type. You could get this exception previously when trying to set the stack size of a thread which is already running, but you had no way to catch this exception without a generic exception block. [Fix] [IDE] Exporting: Exporting an external item no longer creates a file that contains a reference to the original item. Instead, it exports the actual item instead. (Feedback ID: zolrqejm) [Kis] [IDE] External Items: May get confused about which folder they're supposed to be in if you have two projects open that share an external item, and then move that item to a different location in one project. (Feedback ID: gazqffcc) [New] [IDE] Favorites Bar: now configurable like the other toolbars, except that for "Available Items" you will see recently-visited locations in the current project. [Chg] [Win] File I/O: No longer setting the write sharing flag when opening a file up. This means that you cannot open the same file for writing at the same time. Note that you can open up the same file for reading at the same time still. [Fix] [Mac] FileTypes: The file extension is now always a factor in determing whether to allow opening of files in the openDialog. Previously the file extension was only considered if the MacType was unknown. [New] [IDE] Find: now searches properties of menus, menu items, and controls. [Fix] [Win] Floating Windows: Can no longer get hidden behind the MDI window frame if their parent was a plain box which is hidden or closed. (Feedback ID: dusmkmwn) [Fix] [Car] Focus: If the focus is changed as a result of a tab in your application, activating and deactivating the window will remember the correct focus control. NOTE: Controls which have the focus as a result of full keyboard access aren\'t restored as a result of a activate/deactivate. (Feedback ID: ewruumbp) [New] [All] FolderItem: Added the ability to get and set the Owner and Group for a FolderItem. Note that this does not work on file systems which do not support the concept of owner and groups (such as any file system on Windows, or Classic). [New] [All] FolderItem: Added the ability to get and set the permissions of a FolderItem. You can get the Permissions as an Integer (the octal set of permissions), as well as set as an Integer. You can also set via the Permissions class (tho you cannot directly retrieve a Permissions object from a FolderItem to prevent aliasing problems like you would see with the Date class). Note that this does not work on Windows or Classic. (Feedback ID: vvuywern) [Fix] [Lnx] FolderItem: Alias now reports proper information about symbolic links. [Fix] [Win] FolderItemDialog: Now displays better explanatory text with the file extension filter. [Fix] [Mac] FolderItemDialog: Now removes the ampersand used for keyboard mnemonics from the button captions on the Mac. (Feedback ID: nbtzwipk) [Chg] [Lnx] FolderItemDialog: Now uses the new file dialogs if available (requires at least GTK+ 2.4), which supports file filters. [Fix] [Mac] FolderItemDialog: Now, previews for files are show in the preview pane, as they were in 4.5 and earlier. (Feedback ID: kjxhuljw) [Fix] [Win] FolderItemDialogs: Now using the new style dialog box on Windows 2000 and up instead of the older styled box. (Feedback ID: ugnngkdq) [New] [Win] FolderItem: ExtensionVisible now returns the proper value on Win32 systems that support hiding file extensions. Note that this is a global flag on Windows -- it doesn\'t pertain on a file-by-file basis. So if it is true for one FolderItem, it is true for all FolderItems on Windows. [Fix] [OSX] FolderItem: Moving a file to another folder with a rename no longer fails if the folder already has a file with the same name as the source file\'s original name. (Feedback ID: yezkcwtj) [New] [All] FolderItem: New "URLPath" accessor which returns a URL that can be passed to ShowURL or other items requiring URLs. [Fix] [Mac] FolderItem: Now returns proper ShellPath information for root volumes on all systems, not just a lucky few systems such as mine. (Feedback ID: zbcstsqr) [Fix] [OSX] FolderItem: Now returns ShellPath with octal-encoded escaped characters if the character is a non-ascii value. [Fix] [OSX] FolderItem: Trying to construct a FolderItem from a completely invalid shell path now returns nil from GetFolderItem or throws an exception from new FolderItem instead of crashing. (Feedback ID: sjxcxbph) [Fix] [OSX] FolderItem: Using CopyFileTo and MoveFileTo now preserve permission information. (Feedback ID: jlpzzuvx) [New] [All] FolderItem, Serial, SocketCore, et al: All classes that have an ErrorCode property to them now have the constant NoError to signify that no error has occurred. (Feedback ID: dookcvmb) [New] [All] FolderItem.Launch: New method Launch( parameters as string, [activate as boolean]), where "parameters" is the application parameters to pass to the launched app (Windows and Linux), and the optional activate parameter specifies whether the application should be launched in the foreground or background.\r [Fix] [Lnx] FolderItem.OpenAsPicture: Loading JPGs, PNGs, TIFFs, GIFs, or XBMs no longer throw assertion messages (when running in the terminal), which may have crashed some apps. [New] [All] FolderItem.OpenAsVirtualVolume: Now works even when the virtual volume file is locked or on a read-only volume (though of course, the virtual volume will then be read-only as well). [Fix] [Lnx] Fonts: All fonts now render properly. [New] [All] For loops: Can now declare a variable on the loop using the syntax:\r\rfor VariableName As VariableType = ...\ror\rfor each VariableName as VariableType in ... [New] [IDE] Form Editor: Controls list now shows icons, and also allows you to select among several different sets of controls to choose from. [Fix] [Win] Four Char Codes: Are now returned in the proper endian format instead of always assuming big endian. This fixes things like the Mac creator code of an application built for the Mac using the Windows IDE being swapped. [Fix] [Win] Framecolor: Now returns the proper frame color (as the OS reports it) on Windows. (Feedback ID: urigivnx) [Fix] [Mac] GetFolderItem: No longer returns the parent folder for PEF applications when you have a folder named Support Files next to the application. (Feedback ID: wynukuxu) [New] [All] GetFolderItem/New FolderItem: Now accepts a new constant FolderItem.PathTypeURL in the optional PathType parameter. When passed this constant, GetFolderItem will attempt to interpret the path as a URL. It must begin with "file:///". [IDE] [New] Go To Location: Now works even when the Location toolbar item is hidden or otherwise not available, by displaying a sheet or dialog where you can enter a location. [Opt] [OSX] Graphics: DrawPicture is faster when using Quartz for repeated drawing of the same image when the image hasn't changed. This in turn makes the IDE's form editor much faster on OS X. [New] [All] Graphics: Drawstring function now has an optional "condense" boolean property that when used in conjunction with the width property will shorten the inter-character spacing and add an elipses if necessary to the string being displayed. [Fix] [Lnx] Graphics: DrawString, StringWidth and StringHeight no longer leaks memory. (Feedback ID: kygzdzkq) [New] [All] Graphics: Graphics.StringDirection will attempt to determine the predominant drawing direction that string characters will draw. If the user passes an empty string it will return the system default string direction. If REALbasic doesn\'t support this function on this platform or the system can not determine it, the function will return TextDirectionUnknown (or -1), otherwise it will return TextDirectionLeftToRight (or 0) or TextDirectionRightToLeft (or 1). This function can be useful when dealing with text from the Middle East. [Fix] [Lnx] Graphics: No longer leaks memory when getting the graphics property of a control. [Opt] [OSX] Graphics.DrawPicture: Now significantly faster in many cases when using Quartz (UseOldRenderer = false) [New] [IDE] Help Menu: Three new commands allow quick access to PDF documents found either in the same folder as the IDE, or in a subfolder called "Documentation." If a document is not found, you'll be told the expected name and location, and be given the opportunity to visit our downloads page. [New] [IDE] History Menu: Now keeps the location for each window separate rather than mixing them all together. [IDE] [New] History Menu: Now updates when a project item, method, or control is renamed. [Fix] [All] HTTPSecureSocket: Fixed a bug that could sometimes return only part of a page when using the HTTPSecureSocket on Windows when CPU usage was high or the machine was slow. [Fix] [All] HTTPSecureSocket: HTTPSecureSocket only returns the correct resulting page when using authentication. (Feedback ID: mtybwdfc) [New] [All] HTTPSocket: HTTPSocket adds HTTPStatusCode function to return the resulting code from the server. This function can provide the status code when the socket is used in synchronous mode. [Fix] [All] HTTPSocket: HTTPSocket no longer sends post content data when performing a GET. (Feedback ID: yuyrsmrc) [New] [All] HTTPSocket: HTTPSocket provides a PageHeaders function which provides access to the headers received from the server. This can be used to access the headers in synchronous mode. [Fix] [IDE] Icon Editor: Clear All Icons, Clear Icon, and Paste Icon actions are now an undoable actions [New] [IDE] Icon Editor: Importing an Icon is now undoable [New] [IDE] Icons: Now supports building win32 Icons in RB6. It now supports 32bit icons in addition to 8bit, and supports icons of width 16, 32, and now 48. [Fix] [IDE] Icons: You can view and edit your app icons. You can import from .icns (Mac Only), .ico files and picture files. You can export to .icns and .ico files. You can zoom in and out, for better proofing.\rKis - The icons do not yet become part of your final application.\rKis - Undo not hooked up.\r\r [New] [IDE] IDE Menus: The Revert menu is now functional. [New] [IDE] IDE Menus: The Window menu now serves a useful purpose. [New] [All] IDE: ContainerControls now draw their name inside of the IDE. (Feedback ID: yspipild) [Fix] [All] IDE: When dropping a folder onto the project list, it now ignores invisible files including items with a preceding "." (Feedback ID: lgwmezix) [Fix] [Lnx] ImageWell: Now draws the image inside the imagewell properly, instead of being offset. [New] [IDE] Import command: The Import menu command (or dragging of files into the project list) now works, though currently only picture and sound files are detected as such; everything else imports as a raw-data file.\r [New] [All] Internet Standards: Added optional encoding parameters to DecodeURLComponent, DecodeBase64, and DecodeQuotedPrintable. The behavior for not passing in an encoding has not changed and will continue to return a nil-encoded string. If you pass in an encoding, it will have the same effect as calling DefineEncoding() on the resulting string. [Fix] [All] Internet Standards: EncodeURLComponent, EncodeBase64, and EncodeQuotedPrintable all now return ASCII encoded strings. (Feedback ID: jrcvhovr) [Dep] [All] Intrinsic Functions: Deprecated IsCMMClick, please use IsContextualClick. Deprecated AppleMenuFolder with no replacement. Deprecated ExtensionsFolder with no replacement. Deprecated ControlPanelsFolder with no replacement. [Fix] [All] Intrinsic Functions: IsNumeric now fails on cases like "1e", which makes it consistent with VisualBasic\'s IsNumeric function. (Feedback ID: dldmeptg) [New] [OSX] Intrinsic Functions: On Mac OS X 10.3 and later, Format() will use information based on the user\'s locale even if the user\'s locale is an Unicode only locale. [Fix] [All] Intrinsic Functions: Window (the function, not the class) and WindowCount no longer report information about a window which is in the process of closing (which would generally manifest itself by the Window function returning a Nil window). (Feedback ID: kbcwusgv) [Fix] [All] IsNumeric: Now returns false for strings starting with Inf or NaN that aren't valid NaN or Inf strings (for example, NaN(000) is valid, but Nano isn't). (Feedback ID: ncywrexs) [Fix] [All] IsNumeric: Now returns false when passed invalid data such as "+e2". (Feedback ID: rvhqgnui) [Fix] [All] IsNumeric: Now returns true for the string form of NaN and Inf. ie) IsNumeric( Str( 0/ 0 ) ) returns true, just like IsNumeric( 0 / 0 ) does. (Feedback ID: kdvrjzbq) [Opt] [All] Join: now works far more efficiently when joining large arrays of strings. (Feedback ID: dmkxogsq) [Fix] [Win] Keyboard Mnemonics: Now follow proper system guidelines for when they are fired. Previously followed the VisualBasic rules for firing and focus, but now follow the system standards instead. (Feedback ID: yeqxocsc) [Chg] [IDE] Keyboard Shortcut: The keyboard shortcut to change tabs is now Control+Tab and Control+Shift+Tab on the Mac instead of Cmd+Shift+Left/Right Arrow. [New] [All] Keyboard: Added AlternateMenuShortcutKey and AsyncAlternateMenuShortcutKey so you can test the proper alternate menu shortcut modifier key on all platforms. This checks the option/alt key on the Mac, and the shift key on Windows/Linux. [New] [All] Keyboard: Added MenuShortcutKey and AsyncMenuShortcutKey so you can test the proper menu shortcut modifier key on all platforms. This checks the command key on the Mac, and the Ctrl key on Windows/Linux. [Dep] [All] Keyboard: Deprecated CommandKey and AsyncCommandKey Deprecated OptionKey and AsyncOptionKey [Fix] [Win] Keyboard: Getting the non-async state of keyboard modifiers is no longer asynchronous when out-pacing the event loop. [Fix] [Win] Keyboard: No longer reports a keyname for keycode 0x51 since there is no such key as a numeric pad = on Windows (the Mac numeric pad has one more key than a PC keyboard does). (Feedback ID: agtxvrke) [Fix] [Win] Keyboard: Now reports the proper key text for the numeric keypad on Windows (doesn\'t report / as being *, or * as being -). (Feedback ID: agtxvrke) [Fix] [Mac] Keyboard.KeyName: No longer returns invalid data after the user has pressed certain command-key combinations. (Feedback ID: udjnskdx) [New] [All] Language: New "Optional" keyword lets you make a parameter optional without specifying a default value. This modifier precedes the parameter name, like ByRef or ByVal. If the caller omits this parameter, it will receive the standard initial value for its type. [New] [All] Language: Select Case block now allows "Case Else" as a synonym for "Else". [New] [All] Language: Variables declared on Exception and Catch statements now live inside the block\'s scope instead of inside the method scope. This means multiple Catch blocks at the same level can use the same exception variable name. (Feedback ID: qfwkubcy) [Fix] [IDE] Linker: Fixed minor memory leaks in PPC and Win32 linkers [New] [All] Listbox: Added a new flag "RequiresSelection". When true users won\'t be able to unselect the last row by clicking below the last visible row or by dragging. You can still unselect the last item by setting the listindex to -1 [Fix] [All] Listbox: All columns have the same default text indent. Setting the listbox to hierarchical, adding row pictures, and checkboxes can still affect this. (Feedback ID: jxdhnkyg) [Fix] [Win] Listbox: BorderDoubleThinSolid and BorderThickSolid now looks proper on Windows. (Feedback ID: rmiivssd) [Fix] [Mac] Listbox: Checkboxes in a listbox no longer draw outside the listbox bounds on non-composite windows. Composite windows didn\'t have this problem (Feedback ID: xftujavj, jreuxejj) [Fix] [Lnx] Listbox: Checkboxes now clip horizontally (Feedback ID: uyhynrkb) [Chg] [All] Listbox: Cicking on an editable cell no longer enters edit mode unless the row is already selected. [Fix] [All] Listbox: click region now matches drawing area for listbox checkboxes. [New] [All] Listbox: Hierarchical disclosure widgets are now indented with the row on OS\'s where this makes sense including Mac OS X Panther. (Feedback ID: eogtkdqp) [Chg] [All] Listbox: Listbox cellbackgroundpaint and default grid lines now draw into the virtual cell space below and to the right of the actual cell data. This can be used to draw stripes in background even when no list data is visible. As such you will need to check row and column to make sure they are in bounds before accessing data in CellBackgroundPaint. There is currently no user option to turn virtual row painting on/off. CellClick and CellTextPaint do not work with virtual cells. [Fix] [All] Listbox: no longer gets into a state where the Change event stops firing under certain circumstances. (Feedback ID: gnjamkoj) [Fix] [Win] ListBox: No longer shifts focus when pressing the right and left arrow keys. [Fix] [Lnx] Listbox: No longer throws a GTK assertion when setting the WidthActual in the Open event of a listbox. (Feedback ID: twojvgqp) [Fix] [Lnx] Listbox: Now clears the focus from previous control when the listbox gains focus. [Fix] [Mac] ListBox: Now draws CheckBoxes in the proper disabled state when the ListBox is disabled. (Feedback ID: efhblqrx) [Fix] [Win] ListBox: Now draws the cell text properly when disabled. (Feedback ID: opvwmoib) [New] [All] Listbox: Now handles EditSelectAll Menu items by default. You can still override this as always in a subclass. In order for this to work you have to have the selection type set to multiple [Fix] [Win] Listbox: Now handles focus row selection properly on Windows and Linux when using the Page Up/Down, Home and End keys. Now properly shifts the focus instead of just the view. [New] [All] Listbox: Now handles the copy menu command. It will copy any data from the listbox to the clipboard. Column data is separated by tabs, row data is separated by platform specific new lines. [Fix] [All] ListBox: Now scrolls properly even if a scrollbar isn\'t present. This can occur via keypresses such as Page Up, Page Down, End, Home, the arrow keys, and the mouse wheel. (Feedback ID: zztdxoyd) [Fix] [All] Listbox: Now throws an outofbounds exception instead of a failed assertion when a user accesses a row picture that is out of bounds. (Feedback ID: etijqgvb) [Fix] [Mac] ListBox: the DragItem created when you drag a row now has its bounds properly set; previously this was the case only for row 1. (Feedback ID: fpjqurlt) [Fix] [All] Listbox: The editable cell now honors column alignment offset and cell alignment offset. (Feedback ID: bimoqzta) [New] [All] Listbox: The editable cell of a listbox will now match the listbox cell alignment. NOTE: This feature is turned off for center aligned cells because of an editfield limitation. Center align cells will show a left justified editable cell. [Fix] [Win] ListBox: The selection for a listbox no longer disappears when the listbox becomes disabled. (Feedback ID: ubsttwky) [New] [All] Listbox: The text of the listbox header now matches the listbox column alignment. (Feedback ID: dqwfvhfh, pqqfyurv, wtqvdjre, jtgwbsss, havatgyf, qhacayqa, ihfebcse) [Fix] [All] Listbox: Viewing a listbox control in the debugger while the control's window is being constructed no longer causes the debug app to crash. [New] [Mac] Listbox, Editfield: The horizontal scrollbar now moves if you use the mousewheel in conjunction with the shift key on the macintosh. (Feedback ID: cqodsqsn) [New] [All] Listbox.Cell: -1 is now a valid value to use on listbox.cell. It acts as a wild card and means every row, or every column depending on which position in cell its used.\r\rWhen setting you can use it in conjunction with out of bounds data and it will create the row or column for you.\r\re.g. You could add all columns of the next row at once with:\r\rme.cell(me.lastindex, -1) = myTabDelimitedRow\r [New] [All] Listbox.DragReorderRows: A second parameter, parentRow, is now passed to the DragReorderRows event. This gives you the row number of the parent folder in the case of a drag within a hierarchical listbox. As with the newPosition parameter, the row numbers are adjusted for the assumption that all selected rows will be deleted. A value of -1 indicates a drop at the root level of the listbox (i.e., no parent row). [Dep] [All] LittleArrows: Deprecated the LittleArrows control, please use the UpDownArrows control instead. [New] [IDE] Location/Search Fields: Now resize to fill available space in the toolbar. [Fix] [All] LTrim, RTrim, Trim: Now all function the same across all platforms. These functions now trim based on the official list of Unicode whitespace, found at http://www.unicode.org/Public/UNIDATA/PropList.txt (Feedback ID: jlsuscpg) [Fix] [IDE] Mach-O: The Windows IDE can now build working Mach-O applications. (Feedback ID: jwuraisi) [New] [Win] Main Window: Now uses a true status bar control in the main IDE window. [New] [All] Max and Min: now allow more than two parameters, and return the maximum and minimum (respectively) of all parameters given. [New] [IDE] Maximize Editor mode: Now remembers the position of the splitters in the window and code editor (as global preferences). [New] [IDE] Maxmimze Editor: This new command under the View menu hides all the toolbars, and also shrinks down the side panels of the window or code editor, maximizing the space you have to work on actual content. Use the command again (now called "Restore Editor") to put everything back to normal. [New] [All] MemoryBlock: Added a new method called WString that allows you to get and set WStrings (UTF-16 strings) that are null terminated in a MemoryBlock. [Fix] [All] MemoryBlock: CString and PString now return strings with an unknown encoding instead of ASCII. (Feedback ID: poijvfea) [Fix] [All] MemoryBlock: MemoryBlocks created by addition or via the Left, Right, and Mid methods no longer leak their content buffers. [Fix] [All] MemoryBlock: MemoryBlocks now compare against nil differently by checking the data wrapped by the MemoryBlock to see if it is nil as well. This means that declares returning nil via a Ptr that's assigned into a MemoryBlock can be compared properly, like this: dim mb as MemoryBlock = MyDeclareReturningNilPtr if mb <> nil then MsgBox "Yay" [New] [All] MemoryBlock: Now has a constant named UnknownSize which is an integer, whose value is -1. [New] [All] MemoryBlock: Now supports creating a 0-length memory block. (Feedback ID: ugcnxhgk) [Chg] [All] MemoryBlock: Size is now a property instead of a method (meaning you can view the memory block size under the debugger now). [Chg] [All] MemoryBlock: Size now returns MemoryBlock.SizeUnknown (-1) when we don't know the size of the memoryblock. Previously it returned 0. You can get a memory block of unknown size from declares. [Fix] [Lnx] MemoryBlock.WString: On Linux and Mach-O builds only, setting a WString writes out a wchar_t string (which is a 4-byte character string that we convert to). When retrieving a WString, it is also assumed that the block of memory contains a wchar_t string (4-byte character string), and is subsequently converted to a UTF-16 string and returned to you. [New] [IDE] Menu Editor: Now warns you (in the tips area) when you are creating a duplicate menu accelerator or shortcut combination. [New] [IDE] Menu Editor: Special menu items (derived from AppleMenuItem, PrefsMenuItem, or QuitMenuItem) are now shown in their proper locations based on the platform display mode. For example, if viewing the menus in OS X mode, these items appear under the Application menu, but in Windows or Linux mode, they appear in their "home" location. [New] [IDE] Menu Items: special menu items (e.g. Apple menu items, or MenuItem subclasses such as QuitMenuItem) are now supported. [Kis] [IDE] MenuEditor: You cannot create new menu item arrays or edit existing ones. You can use the new MenuItem APIs if you must work with dynamic menu items immediately. [Fix] [Lnx] Menu: Improved menu support. Sometimes items would not appear depending on the order of how you added them, this should no longer be the case. [New] [All] MenuItem: Added a new constructor (called MenuItem) that lets you set the text and optionally set the tag of the item being constructed. [New] [All] MenuItem: Added the ability to use a MenuItem as a contextual menu with the new PopUp API as follows:\r\rPopUp() as MenuItem -- places the contextual menu next to the mouse cusor.\rPopUp( x as Integer, y as Integer ) -- places the contextual menu at the location given.\r\rBoth functions will return the MenuItem that was selected. Before the function returns the MenuItem, the selected item\'s Action event will be fired. If the Action event returns true, PopUp will return nil since the action was already handled. [Dep] [All] MenuItem: Deprecated CommandKey, please use KeyboardShortcut instead. [New] [Car] Menus: Can now have more than 255 menuitems in Carbon. [Fix] [OSX] Menus: No longer flicker on OS X. This previously happened in certain circumstances, as mentioned in the feedback id. (Feedback ID: jyaddmuo) [Fix] [Lnx] Menu: When a menu item is triggered by a keyboard shortcut, the menu item action event is triggered before any control, or window, receives a KeyDown event. [New] [OSX] MessageDialog: ShowModalWithin method added to the MessageDialog class to allow you to show a messageDialog as a sheet. (Feedback ID: obovixbk) [Fix] [Win] MessageDialog: The dialog width now properly adjusts for strings with line breaks in them. (Feedback ID: xnfsejms) [Fix] [Lnx] Microseconds: Now returns precision in microseconds instead of whatever incorrect precision it was before. However, it does not return the amount of time that has passed since the user\'s computer was started. [Fix] [Win] MouseCursor: On Windows/Linux, the X, Y hotspot are no longer reversed. However, this may require you to reimport your mouse cursor. (Feedback ID: ykwxxfue) [New] [All] MoviePlayer: Added new AutoPlay as boolean property. Set this to true if you want the movie to automatically start playing when you assign a movie to the MoviePlayer control. This property defaults to false. [New] [All] MoviePlayer: Added new PlayerType property.\r\r0 = Preferred player\r1 = Quicktime player\r2 = Windows Media Player\r\rOn the Mac this property is ignored, the only player currently supported is Quicktime. On Windows, the Preferred Player is Windows Media Player, but if the media file cannot be played using WMP, we will try using the Quicktime player instead. Set this property to 2, to prevent RB from automatically doing this. [New] [All] Mutex: Added a new subclass of CriticalSection -- the Mutex class. Please see the Locking Mechanisms.txt file for more information on how to use this class. [Fix] [Lnx] NetworkInterface: Can now retrieve the MAC address again on Linux. (Feedback ID: rtquploa) [Fix] [Lnx] NetworkInterface, All Socket Classes: Getting the IP address no longer reports information about the loopback address. (Feedback ID: tverguac) [Fix] [Win] NotePlayer: Instrument now maps properly, as on the Mac. [Fix] [All] Object2D: Non-default pen sizes no longer adversely affect how object2d draw their border, when borderWidth = 1. [Fix] [OSX] Object2d: Rotated PixmapShapes now honor their fill property on OS X if "useOldRenderer" is set to false [Fix] [All] Object2D: The default number of segments on RoundRect, Ovals and Arcs now takes the borderwidth into account. It gives a smoother curve where thick borders are involved. [Chg] [All] OLEContainer: This event now returns a variant. [New] [Win] OLEObject: Added EventTriggered( NameOfEvent as string, Parameters() as Variant) event. This event is fired when the OLEObject receives an event from the automation server. The event name is passed as the first parameter, and the parameters for the event that occurred are passed in as an array of variants in the second parameter. [Fix] [All] OLEObject: Currency types are now treated as string, to preserve precision. (Feedback ID: jonmymdq) [Fix] [All] OLEObject: Now correctly reports nil objects instead of falsely creating an empty OLEObject in which a subsequent use would yield a "No Automation Server Present" message. [Fix] [Win] OLEObject: Now works in service and console applications. (Feedback ID: dengryfu) [Fix] [All] OLEObject: Passing string arrays now works, instead of crashing or not working properly, for example:\r\rdim excel as new ExcelApplication\rdim a(2,0) as Variant\rdim param as new OLEParameter\rdim r as ExcelRange\r\ra(0,0) = "1"\ra(1,0) = "2"\ra(2,0) = "3"\r\rparam.Type = OLEParameter.ParamTypeString\rparam.Value2D = a\r\rexcel.visible = true\rexcel.workbooks.add\rr = excel.range("A2", "A4")\rr.value2 = param\r (Feedback ID: uepgjpgd) [Chg] [All] OLEObject: Value property no longer accepts arrays, use ValueArray instead to assign 1 or 2 dimensional arrays. Value2D is deprecated. [Fix] [All] OLEObject: You can now pass an OLEObject byref. Use the OLEParameter class and assign the Value to a new OLEObject("") or an existing OLEObject. [Fix] [Win] OLEObject: 64-bit integer types are now returned as strings, instead of not being returned at all. (Feedback ID: kihkfxns) [Chg] [All] OLEObject/Database: Renamed OLEObject.Property to OLEObject.Value, and Database.Property to Database.GetProperty. The functionality is the same, only the name has changed (note this is not a deprecation, you can no longer use the reserved keyword Property). [Fix] [IDE] Open Recents Menu: No longer fills the open recents menu with garbage on Windows. [New] [All] PagePanel: Added new methods to Append, Insert, and Remove pages.\r\rAppend() -- appends a new page.\r\rInsert( index As Integer ) -- inserts a new page at the specified index.\r\rRemove( index As Integer ) -- deletes the page at the specified index. This will also delete all controls within that page. [Fix] [Lnx] ParseDate: Able to parse more formats now (Feedback ID: ouvgzhry) [New] [OSX] ParseDate: On Mac OS X 10.3 and later, ParseDate now will parse dates based on the user\'s locale even if the user\'s locale is an Unicode only locale. [New] [All] Permissions: Added the Permissions class as an easy way for you to test, set and clear permission bits on a FolderItem. You must pass the Integer permissions value from the FolderItem into the Permissions constructor.\r\reg)\rdim perms as New Permissions( f.Permissions ) [New] [IDE] Picture editor: now supports zooming and scrolling. [New] [IDE] Pictures: Picture items in the project have a new property called "Mask" which allows you to assign another picture item to be drawn automatically into this picture's mask. (Feedback ID: enxvpcdm) [Fix] [Lnx] Pictures: 1-bit BMPs now load properly instead of having the white and black pixels reversed. [Fix] [Lnx] PixmapShape: Now draws if rotated (Feedback ID: slviuwmt) [Fix] [Lnx] Placard: No longer draws on top of everything, so that you can put a StaticText on top of it, for example. (Feedback ID: vgfsqcxx) [New] [All] Plugins SDK: Can now set console safety flags for plugin classes, controls, methods and properties. Note that when you update your plugin, you should update these flags or else truly console safe items will be flagged as not console safe. [Fix] [All] Plugins SDK: Trying to dynamically load some setter functions no longer fails (such as Graphics.Pixel) (Feedback ID: kigriqwp) [Fix] [Lnx] Plugins: Modifier keys now passed to MouseDown function. [Fix] [Win] Plugins: The keyDownFunction for control plugins, now properly returns the correct charCode and keyCode. [Fix] [All] PopupMenu: Now properly strips && to be a single & on all platforms. Note that keyboard mnemonics do not make sense in these controls, so do not expect any to be displayed. (Feedback ID: ugejrrih) [Fix] [Win] PopupMenu, ComboBox: No longer fires the default button or cancel button\'s action event when hitting enter or escape while the list is in the dropped-down state. (Feedback ID: ljgxvyfk) [Fix] [Win] PopupMenu, ComboBox: On Windows & Linux, changing the font of a PopupMenu or ComboBox at runtime now works. (Feedback ID: dvydgydx) [Fix] [Lnx] PopupMenu/ComboBox: No longer fires the Change event when deleting all rows, or when the control is destroyed. (Feedback ID: bylziosw) [Fix] [Win] PopupMenu/ComboBox: Removing a row no longer corrupts memory, which could lead to random crashes later. [Opt] [Win] PostgreSQL Plug-in: Now yields time to the system when polling for data. This allows the PostgreSQL 8.0 server to run better when connecting locally. [New] [IDE] Preferences: Now have a mostly-working preferences dialog [Fix] [All] Printing: Now properly reports the FirstPage and Copies properties on the Graphics class so that you know what information you are responsible for printing. [Fix] [Win] Printing: Now sets the print job name to the title of the front-most window (so the behavior is the same as the Mac) instead of just "Document". (Feedback ID: gwatudhu) [Fix] [OSX] Printing: REALbasic applications will now print using quartz on OS X. This means that unicode font substitution works the same on screen as it does when you print, it also means that pictures using masks work properly, rotated stringShapes will print and transparent Object2D\'s will now print with transparency. If you desire the old behavior you can set "useOldRenderer" to true. Pictures with bit depth of 8 or less are still drawn with Quickdraw. (Feedback ID: wqahlebh, fxosuwep, dxyswfxo, ajadvfdd) [Fix] [Win] Printing: The job name is now the frontmost window\'s title for your application again. (Feedback ID: hsksrxpd) [Fix] [Win] ProgressBar: Switching between a determinant progressbar to an indeterminate progressbar no longer shows the progressbar if it is hidden. [New] [All] Project Editor: Added toolbar item (not to the default set) for encrypting/decrypting project items. [New] [IDE] Project List: Can now hold the command key (Mac) or Control key (Windows/Linux) and double click on an item to open it in a new window. (Feedback ID: jxvpbkuc) [New] [IDE] Project Tab: a new contextual menu command "Window Editor Behavior" allows you to define which properties of a class should appear in the properties list for instances of that class on a window. This can also be accessed from the code editor for a class. [New] [IDE] Project Tab: Copy and Paste can now be applied to most types of project items. (Feedback ID: oslnxzfw) [New] [IDE] Project tab: Project items can now be rearranged or reordered by dragging in the list view, even when the destination is a folder at the end of the list. You can control exactly where the dragged item will be dropped by watching the drop indicator as you drag the mouse. [New] [IDE] Project Tab: you can go directly to the "alternate" mode of an item (such as the code editor for a window) by holding Option (on the Mac) or Ctrl+Shift (on Windows or Linux) while double-clicking or pressing Return on the item in the project list. Or, if you don't like hidden keyboard shortcuts, you can use the contextual menu. [New] [IDE] Properties Editor: now shows the proper properties for standard controls, in the standard order and groupings, with default values. [New] [IDE] Properties List: Color properties are now editable as text, but you can still bring up a color picker by clicking the "..." button. [Fix] [IDE] Properties Pane: Changing the super of an object now automatically adjusts the listed properties to automatically include the new classes properties. [New] [IDE] Proxy icon: document windows in the Macintosh IDE now display a proxy icon, which you can command-click to view the location of the corresponding file on disk. [Fix] [Win] PushButton: The default push button now follows the focus according to OS standards. This allows you to use the Enter key to trigger the button's action event. (Feedback ID: fbpglkip) [Fix] [All] Quicktime: REALbasic now works better with offscreen movies for the following editable movie functions Cut, Copy, Clear, Paste, RestoreUndoEditState, and RestoreRedoEditState, the following Track methods Delete, and DeleteTrackSegment, and the following Video Track Methods InsertVideoTrackSegment, AppendVideoTrackSegment, and AppendPicture. (Feedback ID: cvvarknj) [Fix] [All] Random: InRange now will return proper results if both the min and max are negative numbers. Previously, it could return results 1(+/-) outside of the range. [Fix] [Lnx] RBScript: Setting the source now works properly for Linux console apps. [Fix] [All] RbScript: Strings returned from intrinsic functions or methods of the context object no longer leak when the script ends. (Feedback ID: odtootfo) [Fix] [All] RbScript: Variant accessor methods (IntegerValue, StringValue, etc.) no longer cause undefined identifier errors when used in RbScripts. (Feedback ID: cpssqsdu) [New] [All] RBVersion Constant: Now reports 2005.01. This also is what is reported for plugins via the REALGetRBVersion() method. [New] [All] RBVersionString: Now reports "2005r1". [New] [All] Rb3DSpace.DebugCube: Now works in built applications as well as in debug builds. (So be sure to turn it off if you don't want it on in release builds.) (Feedback ID: etzwvjom) [Fix] [Win] Rb3DSpace.DebugCube: Now works in Windows and Linux as well as on the Mac. (Feedback ID: etzwvjom) [Fix] [All] REALDatabase: Fixed a bug which could sometimes cause loss of data when doing a ROLLBACK. [New] [All] REALDatabase: now supports renaming columns, and changing the column type. There is no official SQL standard for these operations; we use the following syntax:\r\rALTER TABLE RENAME TO \r\rALTER TABLE MODIFY [ COLUMN ] [Chg] [All] REALSQLDatabase: Auto-commit is now off by default, like it is in REALDatabase. This means that if a transaction isn't open when you start writing to the database (using INSERT, DELETE, REPLACE, UPDATE), then one will be opened for you. To commit your changes, you must call Commit explicitly. Or, you can call Rollback to discard your changes. Closing a database with an open transaction will perform an automatic Commit. Note that you can still explicitly open a transaction with BEGIN TRANSACTION. [Chg] [All] REALSQLDatabase: Calling Edit, Update, or Delete on a RecordSet that can't be edited now sets Error, ErrorCode, and ErrorMessage properties to indicate the error. [Fix] [Mac] REALSQLDatabase: Can now build MachO apps with REAL SQL Databases. [Fix] [All] REALSQLDatabase: correctly return a syntax error for SQL statements that aren't terminated correctly. In particular, queries that lacked an ending single-quote were incorrectly returning an empty RecordSet. Now there will be a syntax error in such a case. [Chg] [All] REALSQLDatabase: Field type names now are displayed with leading caps. Removed the unused UncompressedBinary type. [Chg] [All] REALSQLDatabase: it is no longer necessary to include 'rowid' as one of the columns in a SELECT when you plan to edit the resulting RecordSet. The rowid of each column in the RecordSet is now tracked internally. [Chg] [All] REALSQLDatabase: Text inserted into a database is now converted to UTF8 if it is not already UTF8. This is true both when using SQLExecute and DatabaseRecords to insert the text. To insert text without the conversion, insert it into a blob/binary field. [Chg] [All] REALSQLDatabase: 'New REAL SQL Database' now comes before 'Select REAL SQL Database' in the Add->Database menu. [Fix] [Lnx] Rectangle, RoundRectangle, Oval: Controls (such as Listboxes or Canvases) on top of a Rectangle, RoundRectangle, or Oval control, now draw on top. (Feedback ID: rzdurczd) [Fix] [Win] RectControl: MouseExit now fires properly when leaving the control to go into the MenuBar (Feedback ID: wsawbgru) [New] [All] RectControls: Added new MouseWheel event:\rFunction MouseWheel(X as integer, Y as integer, Delta as integer) as Boolean\rWhere X,Y is the mouse coordinates, relative to the control that\'s received this event, and Delta is the amount of scroll lines as defined by the system. This value is positive when scrolling down, and negative when scrolling up. Returning true prevents the event from propagating further. [New] [All] RectControl.PanelIndex: Add new property PanelIndex to RectControls. Use this property to get/set the control's panel index for moving controls on to, or off of, a specific panel on a TabPanel or PagePanel. This property is 0-based, with 0 being the first panel, and so on, and -1 means no panel. [Fix] [All] RectControl.Parent: Is now returned as a RectControl not a Control. This means that you have to do less casting to use it. NOTE: It shouldn\'t have any negative side effects since non rect controls can\'t have children. [New] [Win] RegistryItem: Added optional parameter to RegistryItem constructor:\r\rRegistryItem( path As String, [create As Boolean = true])\r\rPass in false as the second parameter if you do not want the path to be created if it is not found. A RegistryAccessErrorException will be thrown in this case. [Fix] [Win] RegistryItem: Assigning a MemoryBlock to a RegistryItem.Value no longer crashes. [Fix] [Win] RegistryItem: Getting a registry item value of type REG_EXPAND_SZ now retrieves the value (and expands it) properly. [New] [IDE] Remote Debugging: Remote Debugging now functional. Note that the remote debugging protocol is 100% different than in older versions of REALbasic. So you can only use the new stubs with the new IDE. [Fix] [Lnx] RGBSurface: Getting pixels with the RGBSurface is now several orders of magnitude faster than previously. [Fix] [All] RoundRectShape: Setting the cornerWidth or the cornerHeight to be equal to the width or height respectively no longer causes weird drawing annomallies. [Opt] [All] Runtime: object look-ups by index are now substantially faster under common use cases. [Chg] [All] Runtime.ObjectClass: variant objects are now reported as, for example, "Variant(String)" rather than "String". [New] [Mac] SaveAsDialog: now displays a Format pop-up, allowing the user to choose an output format, if you specify more than one file type in the Filter property. Examine the extension of the file name returned to see which format was chosen. (Feedback ID: rffwokid) [Fix] [IDE] Saving: Saving the project now saves the menus, any external code items, sound items, movie items, database items, and text file items. [Fix] [Win] Scrollbar: Now respects the Minimum property when set at design time. (Feedback ID: mkbjcxkb) [New] [All] Semaphore: Now has a constructor that takes the initial count of the number of resources the semaphore is protecting. This parameter defaults to 1 for backwards compatibility. [New] [All] Serial: Added a new method to allow you to watch for line state changes.\r\rLineChangeNotification( ParamArray lines as Integer )\r\rWhen a line state changes, the LineStateChanged event will fire and pass in an array of the lines whose states have changed. To select lines to watch, or to see which lines have changed, please use the new constants added to the serial class for this purpose (DTR, RTS, CTS, DCD, RI and DSR). [New] [All] Serial: Added new constants for the Serial.LastErrorCode property:\r\rAccessDenied = 100,\rPortNotFound = 101,\rInvalidOptions = 102\r [New] [All] Serial: Added two new properties, BytesLeftToSend as Integer and BytesAvailable as Integer to tell you how much data is left to send or receive. [Dep] [All] Serial: Deprecated the Port property, please use the SerialPort propety instead. Note that you should always display some UI to allow the user to choose which port to use since serial ports are different on every machine. [Fix] [OSX] Serial: Now obtaining exclusive rights to the serial port when opening it. This means that another application cannot also open the port (unless they are running as root) once your application has opened it up. This change affects Linux as well. (Feedback ID: bmbkvyvk) [Fix] [Win] Serial: System.SerialPortCount now returns proper information when there are COM ports > COM9 installed. You can now open COM ports > COM9 as well. (Feedback ID: ebgdiyqu) [New] [All] ServerSocket: Added ActiveConnections() as TCPSocket() to allow you to get an array of active sockets (ones that were added via the AddSocket event and are now connected).\r\rThis means you don\'t have to use control arrays of sockets anymore. ;-) [Fix] [All] ServerSocket: Can now get the actual port bound to. (Feedback ID: vpayqwtq) [Fix] [All] ServerSocket: Now honors the MaximumSocketsConnected property on OS X, Windows and Linux again. [Fix] [Win] ServiceApplication: Now receives args from both the "command line" as specified by the service\'s binPath, and the "command line" as specfied by the startup parameters passed to StartService.\r\rPreviously you would only get the parameters from StartService and not the binPath. [Fix] [Lnx] Shell: Getting the ErrorCode now returns the exit status of the executable. (Feedback ID: quxgjolo) [Fix] [Win] Shell: No longer errors out when the app is run from a UNC path (i.e. if the app was located on the network). (Feedback ID: pzxpowae) [New] [Win] Shell: Now supports asynchronous and interactive shell (modes 1 and 2). (Feedback ID: szwdhcpi) [New] [Lnx] Shell: Now supports interactive and asynchronous modes. (Feedback ID: tjqirizd) [Fix] [Win] Shell: Shell now works again on Win98/ME. (Feedback ID: fncfkhtp) [Fix] [Win] Shell: Shells now run much faster in synchronous mode. (Feedback ID: vgpwbgnv) [New] [All] Shell.Execute: Added optional second parameter:\r\rExecute( command as string, [parameters as string] )\r\rThe first parameter is the path/name of the executable to run, and the second parameter indicates the arguments to pass to the executable. You can still specify the entire command without using the optional second parameter if you like (however, on Windows, if the path/name of the executable contains spaces, and you want to pass arguments to it, you\'re better off separating the two). [Fix] [All] SOAPMethod: Invoking a SOAPMethod that returns an empty string no longer raises an exception. (Feedback ID: vooizayj) [Fix] [All] SOAPMethod: SOAP methods that do not have any parameters can be invoked without raising a SOAPException. (Feedback ID: uggpasqg) [Nte] [All] Socket Events: Using MsgBox within a socket event can cause other events to fire due to the modal nature of MsgBox. For example, if you have a MsgBox in the Connected event, while that dialog is displayed, you may get a DataAvailable event. This is normal, expected behavior. If you are using MsgBox to display debugging information, consider using System.DebugLog instead. [New] [All] SocketCore, IPCSocket, ServerSocket: All the socket classes now have a read-only property called Handle as Integer. This is the socket\'s internal descriptor and can be used with declares. Note that the descriptor is platform-specific. Assume that if this property is <= 0 that the descriptor is not available. (Feedback ID: xnltnngd) [New] [Lnx] Soft Declares: Now resolves declares against LibC. Please see the Soft Declare read me for more information. [New] [Car] Soft Declares: Now supports more formats on Carbon. In Mach-O, it will load both dynamic libraries (dylib) and frameworks. The dylib loading supports @executable_path in the library name to load relative to the executable. For CFM, it will try to find a framework as well as a CFM Shared Library. [Fix] [Win] Sound: Can now play MP3s or MIDIs that contain unicode characters in the path/name. (Feedback ID: tijyliic) [Fix] [Win] Sound: Setting a sound\'s pan/volume no longer adjusts the master pan and volume. [Fix] [Win] Sound: Setting a sound\'s volume or pan before playing the sound no longer sets the master volume and pan. [New] [IDE] Sounds: Sounds in the project now work. [New] [All] SpecialFolder: Added a new module called SpecialFolder that contains all of the special FolderItems for the platforms we support.\r\rThese functions can (and frequently do) return nil if there is not a mapping for that FolderItem on a particular system, so test for nil after getting the FolderItem.\r\rOn the Mac, you can pass in a four-char code to the GetFromCode function to have a specific special FolderItem returned to you. [New] [IDE] Splitters: Various splitters in the IDE (such as the divider between the project list and the properties list on the Project tab) can now be toggled open or closed by double-clicking them. [Fix] [Lnx] SpriteSurface: No longer relies on a GTK 2.2 feature. [New] [IDE] SSLSocket: Now supported. [Fix] [OSX] StaticText: Fixed weird mouse click origin shifting problem that occurred when you had an empty single line statictext on a composite window using Mac OS X 10.2. (Feedback ID: ommopzsl) [Fix] [Win] StaticText: Now drawing its captions properly with regards to keyboard mnemonics on Windows 2000 and up. [New] [All] String Functions: Added NthFieldB, CountFieldsB, and SplitB. They take the same parameters as NthField, CountFields, and Split respectively, and behave the same except that they treat the strings as binary data. (Feedback ID: qzxxzqzf) [Fix] [All] StyledText: Now fires the TextChanged event properly on all platforms (Feedback ID: wpxinmmz) [Fix] [All] StyledText: Now throws an OutOfBoundsException when trying to access an invalid index via StyledText.StyleRun instead of throwing an assertion. (Feedback ID: gquygcoc) [Fix] [Car] StyledTextPrinter: No longer prints outside the bounds of the graphics context you're drawing in (for example, a canvas). (Feedback ID: fauczbbq) [New] [All] System: Added a new module named Cursors to the System class. This class contains stock cursors for your application to use. The new cursors are listed in the New Cursors.txt readme. [New] [All] System: Added a new variation to the SerialPort method call that takes a path. On OS X and Linux, this path is the path to the device file corresponding to the serial device (eg: /dev/ttyS0). On Windows, this can be the COM port you want opened (eg: COM1). [New] [All] System: Added the method IsFunctionAvailable( functionName as String, libraryName as String ) as Boolean\r\rCalling this function will attempt to load the function from the given library. If the function can be loaded properly, this will return true. Otherwise it will return false. [Fix] [OSX] System: CommandLine now returns the command line for Mach-O GUI applications (used to only work for Mach-O command line applications). [Fix] [Win] System: PPPConnect no longer causes a crash on Windows 98 and ME when attempting to connect. (Feedback ID: qwfguwcr) [Fix] [All] System: SerialPort now raises an OutOfBoundsException when trying to access indicies that are out of bounds. (Feedback ID: kicoyqly) [Fix] [Win] System: Using .Log no longer puts a bunch of error text in with your log string. (Feedback ID: ofcakiin) [Fix] [All] System.Log: No longer crashes when given a % sign in the logging string. This affects OS X and Linux. (Feedback ID: vjjilwwg) [New] [All] System.Network: Added a new module named Network to the system class with some new networking functionality.\r\rLookupIPAddress( dnsAddress as String ) as String will look up an IP address based on a DNS address that you pass in.\r\rLookupDNSAddress( ipAddress as String) as String will look up a DNS address based on an IP address that you pass in.\r\rBoth functions will return empty strings on errors (malformed addresses), but return the string passed in if the address could not be resovled. (Feedback ID: fjxensch) [New] [All] System.Network: Added the .IsConnected method to let you know whether the computer is connected to a network. Another way to look at this is: if this property is false, then using sockets may cause a dial-up to occur. Note that this function is not supported on Linux and will return false on that platform. (Feedback ID: kjrlcjnm) [New] [IDE] Tab Bar: You can now close tabs with Close Tab menu command (or its keyboard shortcut). When closing the last open tab, the window is closed. Also, if you try closing the ProjectItem list tab, the window is closed. [New] [All] TabPanel: Added new methods to Append, Insert, and Remove tabs.\r\rAppend( caption As String ) -- appends a new tab with the specified caption\r\rInsert( index As Integer, caption As String ) -- inserts a new tab at the specified index with the caption.\r\rRemove( index As Integer ) -- deletes the tab at the specified index. This will also delete all controls within that tab. (Feedback ID: zlnogzht) [Chg] [All] TabPanel: If the Value is greater than the number of tabs, an OutOfBounds exception will be thrown. [Fix] [Lnx] TabPanel: The GotFocus and LostFocus events are now triggered properly. (Feedback ID: ldnodydp) [Fix] [All] TabPanel.PanelCount: Now returns the correct number of tabs. (Feedback ID: cjgqsiwu) [Fix] [All] TCPSocket and subclasses: Trying to connect to a blocked port no longer results in a StackOverflowException when you have a MsgBox in the Error event to report the error. (Feedback ID: koachfyg) [Fix] [All] TCPSocket: No longer causing a StackOverflowException to occur when trying to get the remote address from the Error event. (Feedback ID: phiyxuxp) [Fix] [All] TCPSocket: No longer crashes when an orphaned socket recieves an error while polling and the error causes the socket to be destroyed. [Opt] [All] TCPSocket: Optimized socket send and receive speeds. You should see around a 30% speed increase with large files. [Fix] [All] TCPSocket, UDPSocket: No longer has event reentrancy problems caused by having expensive for loops in a socket event. for example, the AddSocket event no longer fires forever when you have a large for loop in it. (Feedback ID: esgmzccm) [New] [All] Thread Locking Mechanisms: Now all have a TrySignal and TryEnter methods to attempt to obtain a lock on the mechanism. If the lock is obtained, the function returns true. If the lock cannot be obtained, the function does not cause the thread to block and returns false. [Fix] [All] Thread: Now fires a ThreadAlreadyRunningException when you try to call Run on a thread that is currently running. [New] [All] Threads: Added new properties: Priority and State. Added new methods Suspend, Resume and Sleep. Added new constants. Please see the Threads.txt readme for more information. [New] [All] Threads: Added the state constant NotRunning = 4 for testing the state of a thread. This is the state that the thread will be in before you call the Run method or after the Run event has finished executing. [Fix] [Mac] Threads: AppleScript no longer gets confused when called from a thread. (Feedback ID: mndxnpyg) [New] [All] Threads: New method App.SleepCurrentThread( milliseconds ) that will sleep the current thread for the specified number of milliseconds. This can be used from any thread. [Fix] [Lnx] Threads: New pthreads-based Thread class implementation no longer crashes (usually when redrawing controls or otherwise tweaking the UI). [Fix] [All] Threads: Now play much more nicely together. This problem was made worse early in 2005, but this fix makes threads behave better than in 5.5. (Feedback ID: boxjgviz) [Fix] [Mac] Threads: Opening certain large PDF pictures in a thread no longer causes a failed assertion. (Feedback ID: ircxtaou) [Fix] [Win] Timers: Now function in Service applications on Windows. (Feedback ID: qgynnbvh) [Fix] [All] ToolbarItems: Calling .Close on a toolbar item no longer removes that item and all subsequent items of the same type. It only removes the proper closed item. [New] [IDE] Toolbars: can now Show and Hide these via the View menu. (Note for OS X users: Hiding the main toolbar via the menu is different from hiding it via the toolbar widget; with the menu, the rest of the window content expands to take up the space vacated by the toolbar.) [IDE] [New] Toolbars: now configurable (e.g. through the "Customize..." option in the contextual menu). Note that changes are not yet saved between runs of the IDE, and not all available toolbar buttons have icons yet. [New] [Win] TrayItem: Now can add items to the System Tray by using the new TrayItem class. To add an item, use App.AddTrayItem( item as TrayItem ) and to remove an item, use App.RemoveTrayItem( item as TrayItem )\r\rIf you do not specify an Icon for the TrayItem, your application\'s icon will be used. You do not have to worry about calling RemoveTrayItem when your application terminates since that will be done for you automatically.\r\rPlease see the example for more information on how to use this class. (Feedback ID: xkukkynz) [Fix] [Win] UDPSocket: Now trying to load the proper version of the WinSock library for multicasting. Fixes more of the spurious "42" errors on Windows. [Fix] [Win] UDPSocket, EasyUDPSocket: .Bind now works again on Windows 98/ME. (Feedback ID: oqqnsfqz) [Chg] [All] Variant: Can now change a string prefixed with &c or &h and change it into a valid Color. (Feedback ID: tiqcfjei) [Fix] [All] Variant: No longer throws a NilObjectException when calling Variant.DateValue on a variant holding a nil date. This matches the behavior of Variant.ObjectValue. [Nte] [IDE] Visual Bindings: Forget what we said last time about referring to these as "connections." We were just seeing who was paying attention. [New] [IDE] Window Editor: Now correctly shows controls that are part of a control array. [New] [IDE] Window Editor: Resizing the window now tries to snap to controls near the edge of the window. [New] [IDE] Window Editor: You can now select the child controls of a container by holding down the Shift key while dragging (no other controls can be selected before starting this type of drag), or via a contextual menu item of the container control. [New] [IDE] Window Editor: You can now switch between Window Editor and Code Editor modes on the Macintosh by pressing Option+Tab. (On other platforms, the shortcut remains Ctrl+`.) (Feedback ID: bvedxrpl) [New] [IDE] Window Editor: "Current Controls" has been removed from the control list pop-up menu; "Favorites" has been added. Use contextual menus to add items from the other views to the Favorites view, or to remove items from the Favorites view. [Fix] [Win] Window Event Ordering: The Resized event no longer fires before the Open event on Windows. (Feedback ID: fbdyuqjt) [New] [IDE] Window State: projects now save the size and position of each window, along with which items were open. (Additional UI state data may be stored in the future.) [Fix] [Mac] Window: A movable modal window with the GrowIcon property checked, can now be resized. [New] [All] Window: Added three new methods: Maximize, Minimize and Restore to control the state of the window at runtime. (Feedback ID: pzlhfrwz) [Fix] [Win] Window: Child windows are now properly closed when its parent window is closed. (Feedback ID: qgnpfvqq) [Dep] [All] Window: Deprecated GrowIcon, please use Resizeable instead. Deprecated ZoomIcon, please use MaximizeButton instead. Deprecated CloseBox, please use CloseButton instead. Deprecated AcceptMacDataDrop, please use AcceptRawDataDrop instead. [Fix] [Win] Window: Floating windows now have their parent set in a smarter fashion so that floaters which are hidden with the parent get shown with the parent as well. (Feedback ID: pbirvxqm) [Fix] [Win] Window: In certain circumstances, hiding a window would trigger a series of events which would somehow prevent the window from being hidden, that event anomaly can no longer happen. (Feedback ID: iqaxvgvu) [New] [IDE] Window: It is now possible to add event definitions to windows, which is quite useful for making custom controls with embeddable windows. [Fix] [Win] Window: Maximize, Minimize and Restore events all fire properly when double-clicking the titlebar. (Feedback ID: xznzakfl) [Fix] [Win] Window: Now fires the Minimize event in all possible situations. Was previously missing the event when the user would hit Win+M to minimize all windows. (Feedback ID: hhdewzai) [Fix] [Lnx] Window: Resizing a window (when the window is not visible), now properly resizes locked controls. [Fix] [All] Window: Setting Window.MenuBar = nil no longer throw assertions. (Feedback ID: phfcghxq) [Fix] [Lnx] Window: When showing a modal window, such as a message box, triggered from a document window, that modal window should now float on top of the document window that triggered it, rather than floating on top of the first document window that was created (this caused the document windows to shift Z-order as a modal window was shown). [Fix] [Lnx] Window.MouseDown: Returning true from the window\'s MouseDown event no longer prevents a click, on a PushButton for example, froming receiving an Action event. (Feedback ID: bzcfqbwe) [Fix] [All] Window.ShowWithin: No longer crashes when the parent window passed in is nil. (Feedback ID: tegqnuci) [Fix] [IDE] XML Projects: No longer munging non-ASCII strings when reading in XML projects (and project items) on Windows. (Feedback ID: zinomydc)